1

摘要:当使用 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 网站可以正常工作。

4

2 回答 2

0

我的怀疑是,当从 Windows 资源管理器中打开时(我并不完全理解您的意思),被发回的会话 cookie 不会存储在任何地方,因此无法用于弹出窗口以包含在其请求中。我不明白你怎么能解决这个问题。不能告诉客户这种访问应用程序的方式不受支持吗?

于 2008-10-14T12:33:30.753 回答
0

我在 IE 8 上看到过同样的问题,在 Firefox、Google Chrome 或 IE 6 中不会出现这些问题。在我的情况下,我可以看到会话实际上正在工作,但身份验证终止将用户再次重定向到登录页面以供他登录......

于 2008-12-16T11:49:02.267 回答