在C#中打开新窗口时参数丢失

时间:2014-05-14 04:39:28

标签: session redirect scriptmanager

我开发了一个网站,用户只能在登录时访问某些页面。

对于某些请求,当我打开新窗口时,我会更好。大多数情况下,我使用会话来存储包括用户数据在内的数据。

要打开一个新窗口我使用:

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而不是会话中。 有什么反馈吗?

1 个答案:

答案 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>"