摘要:当使用 Windows 资源管理器浏览 ASP.NET 网站时,弹出窗口不会从父窗口“借用”会话 cookie。
细节:
我正在开发一个 ASP.NET 网站 (.NET 2.0)。我使用 FormsAuthentication。需要使用 cookie 来处理会话。
在页面上我有一个按钮。当用户单击它时,会打开一个弹出窗口。弹出窗口显示一个使用会话变量的 ASPX 页面,这些变量之前是从父浏览器窗口中设置的。我一直在使用 IE (6, 7, 8) 和 Firefox 2.0 测试网站。在所有这些浏览器上,弹出窗口都可以访问与父浏览器窗口相同的会话,并且一切正常。
我现在有一个客户端提出的错误,指出弹出窗口显示错误。查看日志文件,我可以看到在弹出页面尝试访问会话变量时它是 NullReferenceException。与客户交谈,他说他在 Windows 资源管理器中打开了主网站!
我设法在测试机器上重新创建了该问题,并看到弹出窗口正在使用新会话。
机器必须有Win XP 和IE6 安装!使用 IE7 网站可以正常工作。