2012-04-13 42 views
4

我升级了一个.net 2.0应用程序到net 4.0,现在如果我尝试用IE登录会话立即过期。更新到ASP.NET 4后会话在IE中“立即过期”? (FF工作正常)

有没有人有什么想法在哪里寻找这个问题?

Firefox可以正常登录。

谢谢。

编辑,更多信息:检查IE的cookies和firefox的cookies,看起来cookie并不是在I.E中创建的,而是在Firefox中创建的。 关于为什么这可能是任何想法?仍然深入挖掘,但有一个艰难的时间...

最后修改;修复:原来这与asp 4.0无关。我升级了应用程序,并将其设置在一个子域中进行测试,以确保一切正常,并且子域中有一个_。经过大量研究,IE不会从带有_的域中取得cookie。这是通过设计意图完成的,显然,由于技术上的DNS规则禁止在域中使用下划线。更改为 - 并且工作。

+0

确保你没有使用折旧会话标签,也可能要设置http://php.net/manual/en/function.session-name.php – squarephoenix 2012-04-13 20:54:27

+2

@ techjunkie.css quetion指的是ASP.Net ,而不是PHP? – 2012-04-13 20:55:24

+2

您是否尝试过使用Fiddler进行调试来验证Cookie等? – 2012-04-13 20:58:13

回答

2

最后的编辑;修复:原来这与asp 4.0无关。我升级了应用程序,并将其设置在一个子域中进行测试,以确保一切正常,并且子域中有一个_。经过大量研究,IE不会从带有_的域中取得cookie。这是通过设计意图完成的,显然,由于技术上的DNS规则禁止在域中使用下划线。更改为 - 并且工作。

0

如果您的应用程序在Firefox上正常工作,那么可能是因为IE 8。IE 8具有不同的Cookie处理设置。这是该问题的补救措施: -

1)工具 - > Internet选项 - >隐私 - >高级 - >检查覆盖自动cookie处理。 2)选择在接受第一方Cookie,并选择接受第三方的cookies 3)检查总是允许会话cookie

如果你不能改变客户端浏览器设置,然后尝试Cookie会话。要做到这一点,只需定义: -

<sessionState cookieless="true" /> 

在您的web配置文件中。

Cookie会话的详细信息: -

http://msdn.microsoft.com/en-us/library/aa479314.aspx

相关问题