在主机上配置的身份验证方案('匿名')不允许在绑定' WebHttpBinding'上配置的身份验证方案。 ('具有基本')

时间:2014-09-02 14:46:12

标签: c# wcf authentication webhttpbinding

我在这里遵循教程:http://allen-conway-dotnet.blogspot.co.uk/2012/07/using-basic-authentication-in-rest.html?_sm_au_=iFVksVM0H8QrkntP,在WCF服务中实现用户身份验证,但是我收到以下错误:

The authentication schemes configured on the host ('Anonymous') do not allow those configured
 on the binding 'WebHttpBinding' ('Basic'). Please ensure that the SecurityMode is set to 
Transport or TransportCredentialOnly. Additionally, this may be resolved by changing the 
authentication schemes for this application through the IIS management tool, through the 
ServiceHost.Authentication.AuthenticationSchemes property, in the application configuration 
file at the element, by updating the ClientCredentialType property on the binding, or by 
adjusting the AuthenticationScheme property on the HttpTransportBindingElement.

我确实尝试在项目中禁用“匿名身份验证”,但我得到的只是错误401 - 未经授权。无法立即显示输入用户名和密码的提示。有谁知道为什么会出现这个问题以及如何解决它?

1 个答案:

答案 0 :(得分:13)

我最终设法通过添加:

来解决问题
<behavior name="...">
     ...
     <serviceAuthenticationManager authenticationSchemes="Basic"/>
     ...
</behavior>