摘要:使用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,网站运行正常。

有帮助吗?

解决方案

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

其他提示

我在IE 8中看到了同样的问题,Firefox,Google Chrome或IE 6都没有出现这些问题。在我的情况下,我可以看到Session实际上正在工作,验证终止再次将用户重定向到登录页面,以便他登录...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top