跨网站引用页面,尤其是涉及session时的问题

今天,工作中要在一个门户站点(aspx)中引用另一个应用站点(JSP)的页面。中间需要进行模拟登陆。

我给出的方案时,先在门户上打开一个隐藏的iFrame,里面调用应用系统的一个后门页面,模拟登陆。这样在当前的浏览器窗口就应该同时具有两个WEB站点的session了,以后,就可以无缝链接到应用站点的内部页面了。

不过,具体操作起来,发现一个奇怪的现象:第一次打开门户站点时,iFrame模拟登陆后总是无法跳转到我期望它打开的页面,而总是跳到应用站点的首页。再刷新一次整个页面,才能正确跳转。

跟踪分析了一下,发现,跳转地址是内嵌iFrame的第一个JSP中存放到session中,然后模拟登陆(表单自动提交)后再redirect的。问题在于,存放的SessionID和redirect时的sessionID是不一致的。所以总是跳到默认首页。

研究了一个上午,翻阅了不少资料,还是没有解决。突然发现,IE的状态栏中出现了cookie阻挡的图标,打开一看,就明白了。原来第一次访问时,IE会屏蔽外部网站的所有cookie,这样JSP的session就无法使用了。

解决方法:目前是客户端把应用站点的地址设置为安全站点即可。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值