[转]解决 Iframe跨域session 丢失问题

解决 Iframe跨域session 丢失问题

Posted on  2012-09-09 12:18  祥叔 阅读(370) 评论( 2编辑  收藏 

最近在开发一个新浪微博的第三方应用的项目(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文件中添加如下所示代码: 

 

转载于:https://www.cnblogs.com/wangp2012/archive/2012/10/23/2734834.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值