IIS托管WCF休息服务不断提示Windows Auth凭据

时间:2014-06-20 20:51:09

标签: c# wcf rest iis windows-authentication

我有一个我正在建设的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设置的图片以及它提供视觉效果的示例,但我还没有足够的声誉。遗憾。

1 个答案:

答案 0 :(得分:0)

我明白了。它最终成为服务器配置问题。我发现我可以从具有有效信誉的远程机器加载Service.svc文件。所以在我做了一些搜索后,我发现了以下文章:

http://warnajith.blogspot.com/2011/06/iis-75-401-unauthorized-access-error.html

问题是我需要DisableLoopbackCheck。所以在我按照该页面上的步骤更新它正确加载的注册表

注意:如果您使用的是Windows 2012服务器,则无需在提供的链接中执行第1步。

希望这有助于将来的其他人。