解决 Iframe跨域session 丢失问题
2014-06-03 16:30
645 查看
最近在开发一个新浪微博的第三方应用的项目(http://apps.weibo.com/weilvyou),在项目中用到了session 。在测试时发现session 取不到值,以为是session赋值除了问题,但是在Chrome中一切正常,故排除此原因。那问题肯定出在浏览器身上里。于是一步一步调试,发现在IE中,如果页面跳转,SessionId 就改变了,问题找到了。然后看了人家其他的一些App,发现他们的请求中
有这样一项头部信息——P3P。
出于隐私安全的考虑,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中可以这样做:
在Global.asax.cs文件中添加如下所示代码:
本文转自:http://www.cnblogs.com/xumingxiang/archive/2012/09/05/2671690.html
有这样一项头部信息——P3P。
出于隐私安全的考虑,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中可以这样做:
在Global.asax.cs文件中添加如下所示代码:
本文转自:http://www.cnblogs.com/xumingxiang/archive/2012/09/05/2671690.html
相关文章推荐
- [转]解决 Iframe跨域session 丢失问题
- iframe跨域cookies和Session丢失问题的解决办法
- PHP关于IE下的iframe跨域导致session丢失问题解决方法
- 解决 Iframe跨域session 丢失问题
- 用P3P header解决IE下iframe跨域访问时候session丢失的问题
- PHP关于IE下的iframe跨域导致session丢失问题解决方法
- IE下PHP iframe跨域导致session丢失问题的解决方法
- 解决iframe中跨域session丢失的问题
- IE下PHP iframe跨域导致session丢失问题的解决方法
- iframe跨域Session丢失问题的解决办法
- 用P3P header解决IE下iframe跨域访问时候session丢失的问题
- 解决 Iframe跨域session 丢失问题
- 用P3P header解决IE下iframe跨域访问时候session丢失的问题
- PHP关于IE下的iframe跨域导致session丢失问题解决方法
- 解决IE Iframe跨域Session丢失问题
- iframe跨域访问session丢失问题解决办法
- IE浏览器iframe跨域丢失Session问题
- 解决同一IP不同端口或跨域访问站点iframe应用session丢失的问与及ASP.NET 开发相关超时设置
- 解决iframe窗体丢失Session时登录窗口显示在子页面的问题
- IE中iframe跨域丢失Session问题