session丢失

iframe跨域session丢失问题

对着背影说爱祢 提交于 2020-03-02 18:40:16
在做项目的时候,碰到一个很棘手的问题。在一个应用中通过iframe的方式嵌入另一web应用,但是session中明明放了值,但是就是死活获取不到。几经周折,终于皇天不负有心人,总算找到了关键命脉所在。 最近在做一个系统(A),需要在系统(A)中集成目前现存系统(B)的功能。 当然,系统(B)功能在访问时做了登陆限制。(一般性都是:系统登陆后把userId放入session中,在具体的功能页面加入session中userId的判断, 如果session中userId不存在,则跳到登陆页,否则继续加载并正常显示功能。) 那么,在系统(A)中要访问系统(B)的功能无非是要绕过系统(B)的登陆。(一般的做法是先跳转到系统(B)中的一个页面,在这个页面里将userId塞入session中, 再自动跳转到实际要访问的功能页面) 以上做法,在不使用框架结构时,是可行的,确切的说是很简单的。 但是如果,系统(A)使用了框架结构,即系统(B)中的功能页面要嵌入到系统(A)的框架中,则会出现一些意想不到的问题, 确切说是系统(B)跳转到了登陆页面,session丢失了。 为什么会这样呢? 因为应用需求在一个页面的不同frame下面访问不同的域,结果造成了session丢失。 问题根源: IE6/IE7支持的P3P(Platform for Privacy Preferences Project