IE下iframe跨域登录导致session丢失问题分析及解决方法
IE下iframe跨域登录导致session丢失问题分析及解决方法
发布时间:2017-01-04 来源:查字典编辑
摘要:网上有这类文章,一般表现为a站点有iframe,iframe的src指向b站,b站登录后保存该域cookie,下次再访问的时候就可以带上这个...

网上有这类文章,一般表现为a站点有iframe,iframe的src指向b站,b站登录后保存该域cookie,下次再访问的时候就可以带上这个cookie,但IE下失效。

而我的情况有些类似,但不尽然;

我的是a站有iframe,但src是指向自己(如,login.aspx页)。然后login有个form,action到B站点,然而去B站点就只是拿一些资料,加密后给回a站点进行登录(cookie写入)。

但发现此时的cookie已经写不进了。

这里应该就是session已经变了,说应该是因为我没确认过。

解决方法也很简单,和网上的一样。

问题根源:

IE6/IE7支持的P3P(Platform for Privacy Preferences Project (P3P) specification)协议默认阻止第三方无隐私安全声明的cookie,Firefox目前还不支持P3P安全特性,firefox中自然也不存 在此问题了。Mircosoft对此的具体描述可以参见 Privacy in Internet Explorer 6

解决办法是在要嵌入的内容中(iframe指向的站点)输出P3P的主机头声明:

给个连接 百度文库

贴个C#代码

if (Request.Browser.Browser.ToUpper().Contains("IE"))

Response.Headers.Add("P3P", "CP=CAO PSA OUR");

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新浏览下载学习
热门浏览下载学习
软件教程子分类