打开新浏览器时ASP.Net SessionID保持保留状态

时间:2011-05-31 07:08:36

标签: javascript asp.net session

我有一个Javascript展开/折叠菜单。当打开New Window时,会创建一个会话cookie来维护菜单的状态(即Expanded或Collapse)。

1.如果我们打开菜单的某个节点,它会在cookie中保持状态。

2.但是当我们打开新的浏览器窗口,然后没有新的会话,它得到了以前的会话,由于这个,菜单仍然显示扩展。

3.但是如果我们关闭所有浏览器然后它工作正常,它会在这种情况下创建新会话。

我需要打开第二个浏览器窗口或标签,但它必须具有不同的SessionID。从ASP.NET页面打开新的浏览器窗口很简单,但它与原始文件共享相同的cookie,因此会共享SessionID。 我怎样才能做到这一点?

感谢您的帮助,

Jaydeep

3 个答案:

答案 0 :(得分:2)

根据我的理解,您不应该使用会话ID来显示表单中菜单的逻辑。而不是这个,你可以使用隐藏字段值或查询字符串值。

答案 1 :(得分:1)

  

我需要打开第二个浏览器窗口或标签,但它必须具有不同的SessionID

抱歉,这是不可能实现的。这就是浏览器的工作方式,你无法控制这种行为。以gmail为例:您登录到您的帐户,然后打开另一个浏览器选项卡/窗口,您仍然会登录,因为Cookie在标签/窗口之间共享。

所以你应该使用其他存储机制,如url id或隐藏字段,而不是cookie。

答案 2 :(得分:0)

要在不同的浏览器选项卡中使用不同的会话,您可以使用无Cookie会话。您可以在MSDN中阅读。

相关问题