WCF服务中的服务未对调用方进行身份验证

时间:2022-08-30 20:28:15

Thanks for your reply but no luck with that code..I am sending you complete config files related to service and application ....Give me any valuable suggession.

感谢您的回复,但没有运气的代码..我发送给您完整的服务和应用程序相关的配置文件....给我任何有价值的建议。

Service web.config

application web.config

Thanks in advance

提前致谢

3 个解决方案

#1


It is probably that authentication is set to anonymous instead of windows.

可能是身份验证设置为匿名而不是Windows。

Check your IIS configuration and web.config for difference between your local machine and the test machine that is failing.

检查IIS配置和web.config,了解本地计算机与失败的测试计算机之间的差异。

Also are you trying to access IIS on a remote machine while you are logged in as a local user.

当您以本地用户身份登录时,您是否也尝试访问远程计算机上的IIS。

#2


The wsHttpBinding has message-level security and by default it uses Windows authentication. If that is not what you want perhaps you meant to use the basicHttpBinding? This binding is not secured by default.

wsHttpBinding具有消息级安全性,默认情况下它使用Windows身份验证。如果那不是你想要的,也许你打算使用basicHttpBinding?默认情况下,此绑定不受保护。

BasicHttpBinding:

The BasicHttpBinding uses HTTP as the transport for sending SOAP 1.1 messages. A service can use this binding to expose endpoints that conform to WS-I BP 1.1, such as those that ASMX clients access. Similarly, a client can use the BasicHttpBinding to communicate with services exposing endpoints that conform to WS-I BP 1.1, such as ASMX Web services or Windows Communication Foundation (WCF) services configured with the BasicHttpBinding.

BasicHttpBinding使用HTTP作为发送SOAP 1.1消息的传输。服务可以使用此绑定来公开符合WS-I BP 1.1的端点,例如ASMX客户端访问的端点。同样,客户端可以使用BasicHttpBinding与公开符合WS-I BP 1.1的端点的服务进行通信,例如ASMX Web服务或使用BasicHttpBinding配置的Windows Communication Foundation(WCF)服务。

Security is turned off by default, but can be added setting the BasicHttpSecurityMode to a value other than None in the BasicHttpBinding(BasicHttpSecurityMode) constructor. It uses a "Text" message encoding and UTF-8 text encoding by default.

默认情况下,安全性处于关闭状态,但可以添加将BasicHttpSecurityMode设置为BasicHttpBinding(BasicHttpSecurityMode)构造函数中的None以外的值。它默认使用“文本”消息编码和UTF-8文本编码。

WSHttpBinding:

The WSHttpBinding is similar to the BasicHttpBinding but provides more Web service features. It uses the HTTP transport and provides message security, as does BasicHttpBinding, but it also provides transactions, reliable messaging, and WS-Addressing, either enabled by default or available through a single control setting.

WSHttpBinding类似于BasicHttpBinding,但提供了更多的Web服务功能。它使用HTTP传输并提供消息安全性,BasicHttpBinding也是如此,但它还提供事务,可靠消息传递和WS-Addressing,默认情况下启用或通过单个控件设置提供。

Edit: Try this configuration:

编辑:尝试此配置:

<system.serviceModel>
    <client>
        <endpoint 
            address="http://miplserver02:9050/UserManagementService/UserManagementService.svc"
            binding="basicHttpBinding" 
            contract="UMS.IUserManagementService">
            <identity>
                <dns value="localhost" />
            </identity>
        </endpoint>
    </client>
</system.serviceModel>

#3


Set value of security mode to "None".

将安全模式的值设置为“无”。

<security mode="None">

#1


It is probably that authentication is set to anonymous instead of windows.

可能是身份验证设置为匿名而不是Windows。

Check your IIS configuration and web.config for difference between your local machine and the test machine that is failing.

检查IIS配置和web.config,了解本地计算机与失败的测试计算机之间的差异。

Also are you trying to access IIS on a remote machine while you are logged in as a local user.

当您以本地用户身份登录时,您是否也尝试访问远程计算机上的IIS。

#2


The wsHttpBinding has message-level security and by default it uses Windows authentication. If that is not what you want perhaps you meant to use the basicHttpBinding? This binding is not secured by default.

wsHttpBinding具有消息级安全性,默认情况下它使用Windows身份验证。如果那不是你想要的,也许你打算使用basicHttpBinding?默认情况下,此绑定不受保护。

BasicHttpBinding:

The BasicHttpBinding uses HTTP as the transport for sending SOAP 1.1 messages. A service can use this binding to expose endpoints that conform to WS-I BP 1.1, such as those that ASMX clients access. Similarly, a client can use the BasicHttpBinding to communicate with services exposing endpoints that conform to WS-I BP 1.1, such as ASMX Web services or Windows Communication Foundation (WCF) services configured with the BasicHttpBinding.

BasicHttpBinding使用HTTP作为发送SOAP 1.1消息的传输。服务可以使用此绑定来公开符合WS-I BP 1.1的端点,例如ASMX客户端访问的端点。同样,客户端可以使用BasicHttpBinding与公开符合WS-I BP 1.1的端点的服务进行通信,例如ASMX Web服务或使用BasicHttpBinding配置的Windows Communication Foundation(WCF)服务。

Security is turned off by default, but can be added setting the BasicHttpSecurityMode to a value other than None in the BasicHttpBinding(BasicHttpSecurityMode) constructor. It uses a "Text" message encoding and UTF-8 text encoding by default.

默认情况下,安全性处于关闭状态,但可以添加将BasicHttpSecurityMode设置为BasicHttpBinding(BasicHttpSecurityMode)构造函数中的None以外的值。它默认使用“文本”消息编码和UTF-8文本编码。

WSHttpBinding:

The WSHttpBinding is similar to the BasicHttpBinding but provides more Web service features. It uses the HTTP transport and provides message security, as does BasicHttpBinding, but it also provides transactions, reliable messaging, and WS-Addressing, either enabled by default or available through a single control setting.

WSHttpBinding类似于BasicHttpBinding,但提供了更多的Web服务功能。它使用HTTP传输并提供消息安全性,BasicHttpBinding也是如此,但它还提供事务,可靠消息传递和WS-Addressing,默认情况下启用或通过单个控件设置提供。

Edit: Try this configuration:

编辑:尝试此配置:

<system.serviceModel>
    <client>
        <endpoint 
            address="http://miplserver02:9050/UserManagementService/UserManagementService.svc"
            binding="basicHttpBinding" 
            contract="UMS.IUserManagementService">
            <identity>
                <dns value="localhost" />
            </identity>
        </endpoint>
    </client>
</system.serviceModel>

#3


Set value of security mode to "None".

将安全模式的值设置为“无”。

<security mode="None">