我开发了一个网站,用户只能在登录时访问某些页面。
对于某些请求,当我打开新窗口时,我会更好。大多数情况下,我使用会话来存储包括用户数据在内的数据。
要打开一个新窗口我使用:
ScriptManager.RegisterStartupScript(this, typeof(string), "OpenWindow",
"window.open( '~/smsftd1', null,'height=400,width=600, status=yes,
toolbar=no, menubar=no,location=no' );", true);
它打开窗口,它看起来我想要它以及它应该如何表现。唯一的缺点是我用会话变量保存的所有数据都消失了。
如果我在相同的页面中重定向甚至打开一个新选项卡,它可以正常工作并且所有会话变量都可用。
当我搜索该问题时,指出它是IE问题(旧版本)。我在IE浏览器设置中更改了设置,但没有帮助。
主要问题是我放弃了用户的授权。 目前我删除了打开一个新窗口,只是重定向。
如果有人这样做我希望知道,所以我可以组织更好的流程。 我能想到的唯一选择是将数据存储在cookie而不是会话中。 有什么反馈吗?
答案 0 :(得分:0)
没有直接的答案,但你可以在firefox中查看fiddler或者垃圾工具。 请增加会话超时时间。
同时检查global.aspx,新窗口打开时没有事件调用。
最好的事情是小提琴手检查所有历史记录显示哪些是cookie /会话变量,链接到重定向等。
在做任何事之前请先链接此链接。
After a few window.open calls my ASP.NET session times out
http://bytes.com/topic/asp-net/answers/287080-session-variable-window-open
Keeping ASP.NET Session Open / Alive
添加web.config并尝试(从上面的链接引用)
"<httpHandlers>
<add verb="GET,HEAD" path="SessionHeartbeat.ashx" validate="false" type="SessionHeartbeatHttpHandler"/></httpHandlers>"