IIS托管WCF REST服务监听提示输入Windows身份验证凭据 [英] IIS Hosted WCF Rest Service keeeps prompting for Windows Auth Credentials
本文介绍了IIS托管WCF REST服务监听提示输入Windows身份验证凭据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在构建一个WCF REST服务。该服务在IIS中的一个SSL下托管。并且我在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设置的图片和一个能给人以视觉效果的例子,但我还没有足够的声誉。抱歉。
推荐答案
我想出来了。这最终是一个服务器配置问题。我发现我可以用有效的证书从远程机器加载Service.svc文件。于是,我搜索了一下,找到了下面这篇文章:
http://warnajith.blogspot.com/2011/06/iis-75-401-unauthorized-access-error.html
问题是我需要禁用Loopback Check。因此,在我按照该页面上的步骤更新注册表之后,它正确加载了
注意:如果您使用的是Windows 2012服务器,则不需要执行提供的链接中的第1步。
希望这能在未来帮助其他人。
这篇关于IIS托管WCF REST服务监听提示输入Windows身份验证凭据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文