IE中用window.open() 新开页面,有时会丢失Session 的问题
IE中用window.open() 新开页面,有时会丢失Session 的问题。
有关这个问题的详细描述,请参看:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;196383
我摘要如下:
其实不仅仅是丢失Session的问题,Authentication (用户验证信息)也会丢失。
这个问题出现的原因是因为 :
"Browse In New Process." 某些情况下,你打开IE的一个新进程,这些信息没有被同步过去。
解决方法当然是老套的及时打补丁。
上述文中,通过设置"Browse In New Process." 演示了这个问题。
在Win2003中,这个设置不在IE的 Internet 选项 -- 高级中(Win2003 IE6 中找不到这个设置),
而在资源管理器的 -- 文件夹选项 -- 查看 -- 在单独的进程中打开文件夹窗口。
如下图的设置:
设置好后,你在资源管理器中输入演示的ASP文件,(注意是资源管理器,不是IE)。点击 WindowOpen 按钮,你就有一定的概率,看到新开的页面跟原来的页面不是同一个Session。
以上演示是在升级了微软所有已知补丁后的Win2003上作的测试,如果是没打过补丁的版本,可能概率更高,我没有测试过。
演示用到的ASP文件,上面提到的URL中给出了,就不再重复。