正文

如何解决网站被别的网站frame的时候Session丢失的问题(2007-3-20 18:20:00)

【收藏】 【评论】 【打印】 【关闭】

症状

如果别的站点要在Iframe中使用本网站的时候会发现,本网站实际上是不能保存Session的,如何被frame的页面如果像访问自己站点的Session会发现这个Session实际上是null,例如本网站上有一个登录窗口login.aspx,登录窗口登录之后就导航到index.aspx页面,index.aspx页面的访问需要login.aspx创建的Session["userid"]的存在,当我的这个网站被别的网站frame的时候,我们可以发现在login.aspx实际上是可以创建Session的,但是当页面导航到index.aspx的时候却发现Session已经丢失了,这就导致登录失败。
 
原因
 
Internet Explorer 6 引入用于隐私首选项 (P3P) 项目平台支持,如果 FRAMESET 或父窗口引用其他站点内 FRAME 或内子窗口, 子站点认为第三方内容。 它使用默认隐私设置是 中型 , InternetExplorer自动拒绝 Cookie 来自第三方站点。
 
解决方法
 
1、把IE隐私级别设置为低,这个不好实现,不能要求用户改变设置。
2、IIS设置
在站点属性里选择HTTP头选项卡,在自定义Http头里点击添加按钮,在弹出的窗口中的“自定义HTTP头名“中输入
P3P
在”定义HTTP头名“中输入
CP="CAO PSA OUR"
即可,此项设置可以单独应用于某个目录而不应用于整个站点。

阅读(2178) | 评论(2)| 复制链接


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

评论人: popking 发布时间: 2007-11-9 1:24:00
Thanks, it's very helpful
评论人: wangjiang 发布时间: 2007-10-12 18:07:00
如果是java网站,没有IIS,该如何设置呢?

发表评论

您的昵称: 昵称不填为“匿名”

您的Email: (可选)

评论内容:(字数请控制在500字以内)