Rails 3,protect_from_forgery和IE8问题

时间:2011-03-30 14:49:46

标签: ruby-on-rails authentication protect-from-forgery

我有一个rails应用程序,在所有浏览器(Safari,Firefox,IE6,7,8等)中都可以正常使用

我有一个新用户,他有一个相当锁定的IE8版本,一旦他们尝试访问应用程序,他们甚至在进入登录页面之前,就会出现Windows身份验证提示。如果他们尝试输入已提供的登录详细信息,则会失败。我并不担心它会失败,因为不应该出现身份验证提示。

只要从ApplicationController中删除protect_from_forgery,他们就可以正常访问系统。

我尝试过建议允许使用Cookie等,但他们仍然遇到问题。有没有人对我们可以看到的其他事情有任何建议

只是添加到此。该站点使用basecamp样式的子域系统。不确定这是否是一个问题。

2 个答案:

答案 0 :(得分:1)

您使用的是哪个版本的Rails?您使用的是哪种身份验证框架?

我对Rails 3.0.3和一些早期版本的Devise有相同的行为。我遇到的问题是,在某些情况下IE8决定在HTTP标头中发送'Accept-Type:* / *',而不是支持长行的格式。 Rails / Devise中的某个地方出现了问题,并且发回了HTTP身份验证状态。

我通过升级到Rails 3.0.5和Devise 1.2.rc2解决了我的问题。

答案 1 :(得分:0)

如果其他人仍然遇到此问题,我使用Rails 3.0.9和Devise 1.2.1并且仍然遇到此问题。我的问题是,IE不会为其中带有下划线的子域设置cookie。有关详细信息,请参阅this answer。因此,我将子域名更改为使用破折号,现在可以正常使用。