Firefox没有使用Windows身份验证显示身份验证提示

时间:2014-03-24 12:11:03

标签: asp.net wcf firefox authentication windows-authentication

我正在为组织构建Intranet ASP.NET Web应用程序,并希望使用Windows身份验证对用户进行身份验证。我有两个WCF WebHttpBinding绑定的自托管服务。两者都使用webHttpBinding和RESTHttpBinding配置。

<webHttpBinding>
    <binding name="RESTHttpBinding">
      <security mode="TransportCredentialOnly">
        <transport clientCredentialType="Windows"/>
      </security>
    </binding>
  </webHttpBinding>

我的服务在Chrome,Opera和IE上运行正常(提示进行身份验证)(在后一种情况下 - 仅当我在安全设置中将用户身份验证中的登录设置为&#34;提示用户名和密码&#34;) 。但是在Firefox中我可以使用this方法来允许自动身份验证,或者获得this post中描述的完全相同的结果:只有401 Unauthorized和一个空白页。

我在谷歌上搜索了HOURS并尝试了不同的选择。我无法找到让Firefox向我显示提示的方法。

2 个答案:

答案 0 :(得分:0)

我检查了Sharepoint中发生了如何使用Windows身份验证的情况,在Firefox中出现了提示,结果发现,Sharepoint中的服务器响应带有标题

WWW-Authenticate: NTLM

而在我的情况下,我用

得到了401响应
WWW-Authenticate: Negotiate

所以我改变了我的app.config文件:

  <webHttpBinding>
    <binding name="RESTHttpBinding">
      <security mode="TransportCredentialOnly">
        <transport clientCredentialType="NTLM"/>
      </security>
    </binding>
  </webHttpBinding>

现在出现提示。

仍然不是我完全满意的解决方案:据说NTLM与Windows身份验证相比降级。

答案 1 :(得分:0)

我找到了这个答案elsewhere

  1. 打开IIS并选择遇到401
  2. 的网站
  3. 在“IIS”类别中打开“身份验证”属性
  4. 单击“Windows身份验证”项,然后单击“提供者”
  5. 将NTLM移至谈判
  6. 之上

    如果这不起作用,也许你正在使用Mac。我发现如果连接不是SSL安全的话,Mac Firefox甚至不允许输入您的凭据。