我有一个我正在建设的WCF休息服务。该服务在SSL下托管在IIS中。我在IIS设置中使用Windows身份验证,禁用匿名身份验证。
但是,当我尝试导航到浏览器中的service.svc文件以测试Windows身份验证时,我会按照预期从我的凭据中提示。但是,在输入我的凭据后,它会不断地提示我一遍又一遍。而且我不知道为什么或我错过了什么。
如果我重新启用匿名身份验证并导航到service.svc文件,那么wsdl数据会加载..但据我所知,此时不再使用Windows身份验证。
我在IE和Firefox中对此进行了测试,他们都做了同样的事情。
这是我的web.config
<system.serviceModel>
<bindings>
<webHttpBinding>
<binding name="WebHttpBindingConfig">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows" proxyCredentialType="Windows"/>
</security>
</binding>
</webHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="httpEnabled">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceCredentials>
<windowsAuthentication allowAnonymousLogons="False" includeWindowsGroups="True"/>
</serviceCredentials>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="EndpBehavior">
<webHttp helpEnabled="true"/>
</behavior>
</endpointBehaviors>
</behaviors>
<services>
<service name="myService" behaviorConfiguration="httpEnabled">
<endpoint address="" binding="webHttpBinding" contract="myContract" behaviorConfiguration="EndpBehavior" bindingConfiguration="WebHttpBindingConfig" />
</service>
</services>
任何帮助解决这个问题都会很棒。如果您需要任何其他信息,请告诉我。谢谢。
问题:尝试在浏览器中查看Service.svc时持续提示信用卡。 预期结果:输入有效的信用证后,他们应加载Service.svc页面
编辑: 我打算发布Auth设置的图片以及它提供视觉效果的示例,但我还没有足够的声誉。遗憾。
答案 0 :(得分:0)
我明白了。它最终成为服务器配置问题。我发现我可以从具有有效信誉的远程机器加载Service.svc文件。所以在我做了一些搜索后,我发现了以下文章:
http://warnajith.blogspot.com/2011/06/iis-75-401-unauthorized-access-error.html
问题是我需要DisableLoopbackCheck。所以在我按照该页面上的步骤更新它正确加载的注册表
注意:如果您使用的是Windows 2012服务器,则无需在提供的链接中执行第1步。
希望这有助于将来的其他人。