我已经花了很多时间试图找出问题所在。从桌面控制台应用程序使用WCF服务时出现此错误。从具有silverlight客户端的浏览器访问时,该服务正常工作。
错误讯息:
System.ServiceModel.Security.MessageSecurityException:HTTP请求未经授权,客户端身份验证方案为“Negotiate”。从服务器收到的身份验证标头是“Negotiate,NTLM”。
即使客户端和服务器都具有相同的身份验证方案“Negotiate”,我也不明白为什么它不起作用。我正在获得HTTP 401。
我验证了客户端和服务器配置是否正确,因为它可以在使用相同客户端配置的silverlight客户端中运行。
IIS7网站使用提供商的Negotiate,NTLM'配置了Windows身份验证。
那么,这个错误信息是什么意思? :(
答案 0 :(得分:0)
我通过设置客户端安全性修复了我的WCF问题
client.ClientCredentials.Windows.ClientCredential = System.Net.CredentialCache.DefaultNetworkCredentials;
client.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;