2011-11-17 61 views
0

在一个ASP.NET应用程序中,我们提供了一个链接来打开另一个应用程序。如果用户点击该超链接,另一个应用程序将在新窗口中打开。问题是两个应用程序都使用同一个会话。有什么方法可以更改新窗口的会话ID吗?ASP.NET新窗口的新会话

我已经尝试在页面加载中放弃会话并清除sessionID cookie。但它正在创建新的会话ID,并且这两个窗口都正在访问新的会话ID。我想为这两个窗口分别设置会话ID。

有没有办法做到这一点?

+0

新的ID如果你不关心你的网址,你可以尝试[Cookie会话(http://msdn.microsoft .com/en-us/library/aa479314.aspx),但可能有更正确的方法来执行此操作。 – R0MANARMY

+0

可能重复:http://stackoverflow.com/questions/2840615/asp-net-session-multiple-browser-tabs-different-sessions –

+0

这听起来像你正在使用错误的工具工作和对粮食作斗争。你想要做什么,让你首先想要这种行为? –

回答

2

我不认为在使用Session时有这样做的好方法。您可能想考虑使用Viewstate而不是会话来处理您不希望在两个窗口之间共享的数据。

0

您可以根据您正在处理的应用程序动态地创建会话ID。当您打开另一个应用程序时,您可以使用唯一ID为第二个应用程序创建新会话。

0

同样的问题只是使用浏览器标签来代替。同样的答案会为你工作

asp.net - session - multiple browser tabs - different sessions?

+0

这将把URL中的会话ID,我不希望它在URL中。 – sabaedge

+1

@sabaedge这不是上一个问题的答案。你需要的是让你使用的会话ID唯一。这可以用一个随机数或guid存储在一个隐藏的变量或视图状态来完成 –

0

使用会话ID。并将其置于查看状态。 将sessionid从视图状态与会话中的会话ID进行比较。 如果它们是不同的一个新窗口中创建一个新的会话,并记得UPT视图状态