在ASP.NET中使用新的会话ID打开一个新的浏览器窗口

时间:2010-04-15 12:21:57

标签: .net asp.net session cookies

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

从ASP.NET页面打开新的浏览器窗口很简单,但它与原始文件共享相同的cookie,因此session ID

我该怎么做?

3 个答案:

答案 0 :(得分:6)

这是一个浏览器限制 - 浏览器实例在运行时共享cookie数据(包括会话cookie),因此标准浏览器无法实现这一点。

如果您可以选择运行不同的浏览器(例如IE和Firefox),则他们不会共享Cookie并且会有不同的会话。

修改

如果您可以控制环境中的IIS主机标头和DNS,则可以使用许多不同的域名 - 每个会话一个。

浏览器会将每个域名视为不同的服务器,并创建不同的Cookie(以及会话)。

答案 1 :(得分:3)

在IE中,您必须使用文件 - 新会话,或者您可以为选项卡/会话设置注册表项。您的标签将更改颜色,显示您正在使用的会话。

答案 2 :(得分:0)

我认为没有办法实现这一点,因为Cookie存储在浏览器级别 - 无论您打开多少个窗口,您仍然会拥有相同的Cookie,因此也会使用相同的会话。

也许有可能使用Cookieless sessions,我不确定,尽管cookieless会话路线有很多缺点。

编辑:根据您的具体情况,实现您想要实现的目标的一种方法可能是让几个不同的域名/网址都指向同一个ASP.NET网站,这样您就可以保留Cookie和会议分开。但是如果你需要每个浏览器超过2或3个会话,那就太傻了。