Internet Explorer中的会话状态问题!

时间:2011-07-28 08:03:29

标签: asp.net internet-explorer session

我有一个网站,我已经添加了在服务器上生成的动态javascript代码。生成的代码是一个图像文件,其中一些guid作为查询字符串。我使用Handler来创建js响应,同时我为新访问者分配Session唯一值,这样我就可以区分那些已经在网站上冲浪的用户。除了Internet Explorer之外,所有浏览器都会在初始站点的回发期间保存Session,每次为现有客户生成新的Guid。

有什么办法可以解决吗?为什么会这样?

2 个答案:

答案 0 :(得分:5)

您网址的任何部分是否包含下划线?我之前看到过这会导致IE和会话状态出现问题,特别是当相同的代码在其他浏览器中正常工作时。

<强>加成

根据您的评论,您的网址(很可能是主机名)包含下划线。虽然你使用的所有其他浏览器都可以应对,但IE不会 - 但是,在它的防御中(我通常不会为IE辩护),下划线是DNS主机名中的非法字符。

我猜你正在访问一个本地机器,它的NETBIOS名称包含一个下划线,例如OFFICEPC_12。

作为解决方法,您可以尝试

  1. 将服务器名称替换为其IP地址,例如http://192.168.0.55/mypage.aspx

  2. 使用此电脑的别名在HOSTS文件中添加一个条目,该别名没有下划线

  3. 真正的最佳解决方案,更改服务器的名称!

答案 1 :(得分:2)

最后在@CResults和@Alex Key的帮助下,我发现IE默认阻止第三方cookie,这是我项目中的一个案例。

修复就像向处理程序添加p3p HTTP标头一样简单......

HttpContext.Current.Response.AddHeader("p3p", "CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"");

感谢你们两个!!!