1

这是一件非常奇怪的事情——我有一个在 maxthon(基于 Internet Explorer 的浏览器)中完美运行的网站。我在opera中启动它,发现放在一个站点上的Session字典中的数据在另一个站点上不可用......我的意思是我有Welcome.aspx,当您单击下一步时,将执行以下代码:

Session["sessionData"] = sessionData;
Response.Redirect("~/Models.aspx");  

在调试时,我可以看到在 Opera 中执行时,models.aspx 会话为空,但在 maxthon 中执行时一切正常。有没有人知道什么是错的?因为我一无所知..这是一些歌剧偏好的东西还是代码中的东西?

编辑:我检查了 Session.IsNewSession 并在 maxthon 中执行时 isnewsession 设置为 false 但在歌剧中它是真的。似乎在歌剧中移动到新页面时它会以某种方式创建新会话......

4

3 回答 3

0

ASP.NET 会话由在浏览器中保存为 cookie 的密钥存储。检查 Opera 以查看它是否接受 cookie - 它需要以使 ASP.NET 会话正常工作。

于 2009-01-05T20:56:30.840 回答
0

也许您在 Opera 中禁用了 cookie。会话通过在 cookie 中存储标识符来工作(除非在 web.config 中指定为 cookieless)。如果浏览器不允许访问,服务器将无法定位数据

于 2009-01-05T20:58:00.777 回答
0

如果您在第一次点击时编写会话,那么您应该这样做

Response.Redirect("nextpage.asp", false);

否则它不会写入整个响应流,并且 cookie 可能还没有被写入。相反,您可以选择进行无烹饪会话。但是随后您对会话劫持持开放态度。

于 2009-01-05T21:06:02.803 回答