我正在为组织构建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向我显示提示的方法。
答案 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:
如果这不起作用,也许你正在使用Mac。我发现如果连接不是SSL安全的话,Mac Firefox甚至不允许输入您的凭据。