繁体   English   中英

匿名之前的IIS Windows身份验证

[英]IIS Windows Authentication before Anonymous

我有一个网站,我想允许表格和Windows Auth for。 我的问题是,当您设置IIS以允许匿名(表单身份验证为必需)和Windows身份验证时,浏览器将不会发送用户的网络凭据。

它只使用匿名登录。 有没有办法在IE8或IIS中尝试Windows Auth 1st然后再回到匿名?

谢谢你的帮助。

您不能要求HTTP身份验证(无论是基本身份验证还是集成Windows身份验证),而不会在没有凭据的情况下弹出身份验证对话框。

因此,通常对于混合HTTP-auth + cookie-auth方法,您可以为站点的大部分启用匿名和经过身份验证的访问,但只允许对一个特定脚本进行身份验证访问。

当用户访问没有任何一种身份验证的页面时,您会吐出一个页面,其中包含基于cookie的身份验证的登录表单,以及指向仅允许经过身份验证访问的一个URL的链接。 用户可以填写表单以获取cookie和表单身份验证,或者点击链接以使用HTTP身份验证登录。

如果用户关注该链接,他们将获得401响应,并且必须通过身份验证对话框提供HTTP身份验证,或者可能使用集成Windows身份验证自动提供。 一旦发生这种情况,浏览器将开始向每个未来页面提交相同的凭据,因此IIS将解析凭据,以便在运行主站点脚本时为您提供预期的REMOTE_USER

浏览器只会将凭据提交到与401脚本相同的目录中的页面或其子目录。 因此,最好将HTTP-auth-required脚本放在根目录中,例如/login.aspx

但是,有一些浏览器不会自动提交其他页面的凭据,并且在使用凭据再次发送请求之前,要求每个HTTP请求首先响应401 这使得optional-auth和hybrid-auth方案变得不可能(以及使受保护站点的浏览速度慢得多!)。 唯一能做到这一点的现代浏览器是Safari。 您可能不在乎,因为Safari对集成Windows身份验证的支持传统上仍然不稳定,它仍然可以使用表单+ cookie auth类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM