在主机('Anonymous')上配置的身份验证方案不允许在绑定'WebHttpBinding'('Basic')上配置的那些

Posted

技术标签:

【中文标题】在主机(\'Anonymous\')上配置的身份验证方案不允许在绑定\'WebHttpBinding\'(\'Basic\')上配置的那些【英文标题】:The authentication schemes configured on the host ('Anonymous') do not allow those configured on the binding 'WebHttpBinding' ('Basic')在主机('Anonymous')上配置的身份验证方案不允许在绑定'WebHttpBinding'('Basic')上配置的那些 【发布时间】:2014-10-26 21:15:15 【问题描述】:

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

主机上配置的身份验证方案(“匿名”)不允许那些配置的 在绑定'WebHttpBinding'('Basic')上。请确保将 SecurityMode 设置为 Transport 或 TransportCredentialOnly。此外,这可以通过更改 此应用程序的身份验证方案通过 IIS 管理工具,通过 ServiceHost.Authentication.AuthenticationSchemes 属性,在应用程序配置中 通过更新绑定上的 ClientCredentialType 属性或通过 调整 HttpTransportBindingElement 上的 AuthenticationScheme 属性。

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

【问题讨论】:

【参考方案1】:

我终于设法通过添加以下内容解决了这个问题:

<behavior name="...">
     ...
     <serviceAuthenticationManager authenticationSchemes="Basic"/>
     ...
</behavior>

【讨论】:

这让我更接近了,但我仍然遇到身份验证错误(另一个)。我最终直接从 IIS Express 配置文件启用了基本身份验证。只需按照此解决方案中的步骤操作:***.com/a/19032453/151325 @Dawid O 你在哪里添加的?我也面临同样的问题

以上是关于在主机('Anonymous')上配置的身份验证方案不允许在绑定'WebHttpBinding'('Basic')上配置的那些的主要内容,如果未能解决你的问题,请参考以下文章

服务器事件查看器里面全部是ANONYMOUS LOGON这个账户的登陆日志

一个进程如何与同一主机上的另一个进程进行身份验证和安全通信

ADFS spring-saml 依赖方没有配置 AssertionConsumerService

推送通知上的错误“身份验证失败,因为远程方已关闭传输流”

如何配置 ActiveMQ 以将“匿名”用户和角色分配给未经身份验证的用户

客户端身份验证方案“匿名”禁止 HTTP 请求