在测试时发现session 取不到值,以为是session赋值除了问题,但是在Chrome中一切正常,故排除此原因。那问题肯定出在浏览器身上里。于是一步一步调试,发现在IE中,如果页面跳转,SessionId 就改变了,问题找到了。

出于隐私安全的考虑,IE会丢失Iframe中的Cookie,IE6/IE7支持的P3P(Platform for Privacy Preferences Project (P3P) specification)协议默认阻止第三方无隐私安全声明的cookie,

Firefox、Chrome 不存在此问题。

我们知道Session 其实就是基于Cookie的。客户端在第一次与服务器建立会话时,会分配给客户端一个随机的sessionId,并存于客户端cookie中,然后在之后的请求中,会带上这个Cookie,如果在客户端找不到这样的Cookie,那么服务器就会重新分配一个。

那么要解决这个问题就是要在请求时添加“P3P”协议。

在Asp.Net MVC中可以利用Attribute来做:

IE 跨域session丢失问题

 

相关文章:

  • 2021-09-01
  • 2022-12-23
  • 2021-05-19
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-10
猜你喜欢
  • 2021-07-10
  • 2021-12-29
  • 2022-12-23
  • 2022-03-02
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案