我有一个包含管理应用程序的虚拟文件夹,例如
https://www.mysite.com/alpha
这需要 SSL。在该文件夹的 IIS 管理器属性中,在“身份验证和访问控制”下,禁用匿名访问并将“经过身份验证的访问”设置为“集成 Windows 身份验证”。
当我在 Chrome 中连接到站点时,我收到两个登录框。第一个来自 mysite.com/alpha:443,第二个来自 mysite.com/alpha:80。 Firefox 似乎重新发送了我的第二个框的凭据,因此它永远不会显示。
知道为什么我需要登录两次吗?
最佳答案
如果您需要为网站上经过身份验证的用户使用 SSL(出于任何原因),那么最好的解决方案是始终将您的“登录”页面置于 https://
上。这样,当他们登录时,他们会立即获得安全。这是因为 SSL 的 native 设计。它通过不在 http
和 https
之间传递身份验证状态来将自身与非安全版本分开/保护。
您还必须编写一些逻辑来将返回的经过身份验证的访问者重定向到安全页面(即:可以从 cookie 返回经过身份验证的访问者)。
编辑:
由于您使用的是 Windows 身份验证,将 ALL 传入 http
流量重定向到 https
可能是最简单的方法。这意味着您的整个网站将通过 SSL 访问,并且无法通过 http 访问(除了重定向到 https)
我写了一个Blog Post关于强制网站在网址中使用 WWW,但也可以移植到强制 https。
关于asp.net - IIS6 SSL 配置 - 必须登录两次(一次用于 :80, 一次用于:443),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3205746/