我有一个 RoR 应用,它已经运行了相当长一段时间,但在最近的一次部署之后,办公室里的所有 IE 用户在导航到根 URL 时都会看到一个 IE 用户名和密码弹出对话框。该对话框的标题为“连接到”,并显示“Web Password 上的服务器需要用户名和密码”。
问题特征:
- 仅 IE 受到影响。Windows 和 Mac 上的 Firefox/Safari/Chrome 均不受影响
- 仅根 URL 受到影响。当我们附加“/login”时,IE 用户将按预期看到登录页面。
- 在 http 和 https 协议上都会发生
- 在我们的网络内部和外部都会发生
有什么想法?什么原因导致的?
有关配置的其他信息:
- Apache 2.0
- 乘客
- 该目录没有指令。
答案1
啊啊!!!
因此,这实际上是一个源自“access_denied”方法的 restful_authentication 问题:
def access_denied
respond_to do |format|
format.html do
store_location
redirect_to new_session_path
end
format.any do
request_http_basic_authentication 'Web Password'
end
end
end
format.any 行由 IE 执行(可能是 IE 的一个错误),但解决方法是更改“format.any do”行:
format.any(:js, :xml) do
这仍然允许您的 Web 服务通过基本身份验证进行连接,同时阻止 IE 显示此对话框。