在我使用 nginx 的服务器上,访问受到基本 http 身份验证的保护。我目前正在开发一段需要 HTTPS 重定向的代码,当发生此重定向时,我会弹出一个新的身份验证窗口。
切换协议时如何避免出现新的身份验证弹出窗口?
答案1
一种可能的解决方案是强制将整个网站转换为 HTTPS,这样使用 HTTP 的虚拟主机就只有一个任务。那就是重定向到 HTTPS。流程将如下所示:
- 用户输入http://www.example.org/
- 浏览器重定向至https://www.example.org/
- 用户输入凭证。
现在,Web 应用程序中的任何重定向都可以“正常工作”,无需重新进行身份验证。
基本上,我的建议是:避免在会话中途切换协议。
答案2
您可以生成重定向到 HTTPS 链接以包含用户名和密码,例如https://<username>:<password>@yourserver/some/path
。
根据微软的说法,这将在 IE 中失败知识库 834489