根 URL 强制 IE 进入“HTTP BASIC”身份验证模式?

根 URL 强制 IE 进入“HTTP BASIC”身份验证模式?

我有一个 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 显示此对话框。

来源:http://rails_security.lighthouseapp.com/projects/15332/tickets/5-using-http-basic-authentication-with-ie-not-working

相关内容