我们在IIS8中托管了一些Web服务,这些服务在使用匿名身份验证集的情况下运行良好。然后几天前,匿名身份验证被禁用,以支持Windows身份验证,这使得无法连接到Web服务。现在我们已恢复为匿名身份验证,但该站点仍要求Windows凭据:
HTTP请求未经客户端身份验证方案授权 '匿名'。从服务器收到的身份验证标头为 “谈判,NTLM”。
我们要做的是: 在web.config中:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="CustomHttpBinding" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
<security mode="None">
<transport clientCredentialType="None" />
</security>
</binding>
</basicHttpBinding>
</bindings>
,并且在IIS管理器中,我们仅选中了“匿名身份验证”:
在applicationHost.config文件中,一切似乎正确:
<location path="Path/WebServices">
<system.webServer>
<security>
<authentication>
<windowsAuthentication enabled="false" useKernelMode="true">
<providers>
<clear />
<add value="NTLM" />
<add value="Negotiate" />
</providers>
<extendedProtection tokenChecking="None" />
</windowsAuthentication>
<anonymousAuthentication enabled="true" />
<basicAuthentication enabled="false" />
</authentication>
</security>
</system.webServer>
应用程序池,站点和服务器都已重新启动/回收。
我还要去哪里?谢谢。
答案 0 :(得分:0)
我同意您所显示的内容看起来都是正确的。我建议您检查所有可见的配置,以了解可能适用的所有未看到的匿名/ Windows身份验证。为此,在IIS管理器中,单击左侧的服务器,然后选择配置编辑器。在右侧,选择“搜索配置”。顶部的搜索仅接受“节名称”,因此WindowsAuthentication和AnonymousAuthentication之类的内容都是不错的搜索。查看配置中可能适用于您的网站/应用的每个位置。
答案 1 :(得分:0)
原来,DNS指向的服务器与我进行更改的服务器不同。