今天遇到一个很奇怪的问题,我的测试站点在firefox中总是没办法登录成功:
1. 具体观察下来,发现FormsAuthentication.SetAuthCookie在IE9和chrome下可以正常工作,但是在firefox 3.6.24下面就不行。后来升级到firefox8.0.1,还是一样的问题。我在Fiddler里面可以看到,请求的AuthCookie已经被成功传回到了客户端,但是cookie中就是保存不了。
2. 还是同样的一个网站的代码,我在正式环境下firefox可以登录成功,但是测试环境死活就是登录不上去。
感谢这篇文章的作者,http://blog.csdn.net/suvi/article/details/5824346, 我用了他的办法搞定了问题。方法如下:
针对浏览器,重新修改登录代码:
if (Regex.IsMatch(HttpContext.Current.Request.UserAgent, "firefox", RegexOptions.IgnoreCase))
FormsAuthentication.SetAuthCookie(user.Name, false);
else
FormsAuthentication.SetAuthCookie(user.Name, persistLogin);
用了这种办法,测试环境果然能登录成功了。
但是后来想了想还是很奇怪,因为这个办法虽然解决了第一个问题,但是,没办法说明第二种情况,就是同样的代码,正式环境(www.myxxxwebsite.com)可以登录,测试环境(www.alpha.myxxxwebsite.com)登录不了。这个感觉上很诡异。 我在google上面也搜到了那个老外的文章,http://joonhachu.blogspot.com/2010/03/firefox-36-not-working-with.html,但貌似需要翻&墙才能访问,我今天翻&墙不太顺利,所以,这第二种情况的原因暂时没有办法深究了。
很想骂firefox......

浙公网安备 33010602011771号