IIS托管WCF REST服务监听提示输入Windows身份验证凭据凭据、身份验证、提示、WCF

由网友(我在幼稚园时得过一百分)分享简介:我正在构建一个WCF REST服务。该服务在IIS中的一个SSL下托管。并且我在IIS设置中已将站点设置为在禁用匿名身份验证的情况下使用Windows身份验证。但是,当我尝试在浏览器中导航到service.svc文件以测试Windows身份验证时,系统会按预期提示我的凭据。然而,在输入我的证书后,它不断地提示我一遍又一...

我正在构建一个WCF REST服务。该服务在IIS中的一个SSL下托管。并且我在IIS设置中已将站点设置为在禁用匿名身份验证的情况下使用Windows身份验证。

但是,当我尝试在浏览器中导航到service.svc文件以测试Windows身份验证时,系统会按预期提示我的凭据。然而,在输入我的证书后,它不断地提示我一遍又一遍。我不知道为什么或者我错过了什么。

如果我重新启用匿名身份验证并导航到service.svc文件,则会加载wsdl数据..但据我所知,此时不再使用Windows身份验证。

WCF开发与调用的完整示例

我已经在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步。

希望这能在未来帮助其他人。

阅读全文

相关推荐

最新文章