asp.net:在Internet Explorer中工作时可以使用放入会话的数据,但不能在opera中使用

StackOverflow https://stackoverflow.com/questions/414488

  •  03-07-2019
  •  | 
  •  

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

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

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

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

有帮助吗?

解决方案

如果您在第一次点击时写下会话,那么您应该

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

否则它不会写出整个响应流,并且可能没有编写cookie。您可以选择进行无法烹饪课程。但随后你开放会话劫持。

其他提示

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

也许你在Opera中禁用了cookie。会话通过在cookie中存储标识符而起作用(除非在web.config中为cookieless)。如果brwoser不允许访问,则服务器将无法找到数据

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top