当前位置:  编程技术>.net/c#/asp.net

iframe跨域与session失效问题的解决办法

    来源: 互联网  发布时间:2014-08-25

    本文导语:  何为跨域跨域session/cookie? 也就是第三方session/cookie。第一方session/cookie指的是访客当前访问的网站给访客的浏览器设置的seesion /cookie, 会被存储在访客的计算机上。第三方session/cookie指的是当前访问的网站中会加载(嵌入)另...

何为跨域跨域session/cookie?

也就是第三方session/cookie。第一方session/cookie指的是访客当前访问的网站给访客的浏览器设置的seesion /cookie, 会被存储在访客的计算机上。第三方session/cookie指的是当前访问的网站中会加载(嵌入)另外第三方的网站代码,例如促销广告,那么第三方网 站也会在访客的计算机上添加session/cookie,这种就是第三方session/cookie。

我的问题

在开发讯息在线产品(http://iap.pgia.net)测试各种浏览器的兼容性时,发现IE浏览器(v78)都无法登录(总是提示验证码不匹配错误),而其它浏览器无此问题(firefox、百度等)。因此可以断定这和浏览器脱不了干系。

初步分析:

细查发现,在使用IE浏览器(v78)访问时,服务器端日志中显示sessionId一直在变化,每次请求都会产生一个全新的sessionId.

显然这是导致无法登录的直接唯一原因,如果解决这个问题则可正常登录。

深入分析:

为什么在IE浏览器(v78)上会出现这种情况呢,百度了解后得知:

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

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

而我的应用结构恰恰如此,即内置一个iframe嵌入远程应用来实现的。

解决办法:

要解决这个问题就是要在请求时添加“P3P”协议。那么如何实现呢?

在框架页面加入如下代码:

代码如下:



至此,问题已解决

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • HTML <iframe> 标签
  • iframe transparent透明背景方法
  • iframe的使用问题?
  • iframe的使用用法
  • [转]目前找到的最好的Iframe自适应高度代码
  • jquery、js调用iframe父窗口与子窗口元素的方法整理
  • jQuery怎么判断iframe中元素是否存在
  • 巧妙的最大化动态载入IFrame的方法
  • jQuery在iframe中无法弹出对话框的解决方法
  • Jquery更换主题同时刷新iframe页面的代码举例
  • Jquery实现iframe高度自适应的代码
  • 在iframe中隐藏横向滚动条的方法大全
  • jquery刷新aspx中iframe的src的代码
  • div层跨越iframe帧显示在上面的解决方法附代码
  • jquery加载完iframe的内容后才进行下一步操作的实现方法
  • 教你用jquery实现iframe自适应高度
  • javascript原生和jquery库实现iframe自适应高度和宽度
  • Juery结合iframe实现无刷新上传图片的代码
  • Iframe自适应高度兼容ie,firefox多浏览器
  • jQuery 计算iframe 窗口大小的方法
  • Firefox返回时Iframe的显示Bug的解决方法


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3