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