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

时间:2009-07-24 12:59:32

标签: c# wcf authentication

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

服务web.config                                                                                                                                                                                  

应用程序web.config                                                                                                                                                                                                                                                                                                             

提前致谢

3 个答案:

答案 0 :(得分:1)

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

BasicHttpBinding

  

BasicHttpBinding使用HTTP作为   用于发送SOAP 1.1的传输   消息。服务可以使用它   绑定以暴露端点   符合WS-I BP 1.1,例如那些   ASMX客户端访问。同样,a   客户端可以使用BasicHttpBinding来   与暴露的服务沟通   符合WS-I BP 1.1的端点,   例如ASMX Web服务或Windows   传播基金会(WCF)   配置的服务   basicHttpBinding的。

     

默认情况下,安全性已关闭 ,但是   可以添加设置   BasicHttpSecurityMode为其他值   比没有   basicHttpBinding的(BasicHttpSecurityMode)   构造函数。它使用“文本”消息   编码和UTF-8文本编码   默认值。

WSHttpBinding

  

WSHttpBinding类似于   BasicHttpBinding但提供了更多的Web   服务功能。它使用HTTP   传输和 提供消息   安全性 ,和BasicHttpBinding一样,   但它也提供交易,   可靠的消息传递和WS-Addressing,    默认启用 或可用   通过单一控制设置。

修改:尝试此配置:

<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>

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:-1)

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

<security mode="None">