2010-04-15 104 views
6

我需要打开第二个浏览器窗口或选项卡,但它必须有不同的session ID在ASP.NET中使用新的会话ID打开新的浏览器窗口

从ASP.NET页面打开新的浏览器窗口很容易,但它共享相同的cookie,因此与原来的session ID共享。

我该怎么做?

+0

我的问题得到了重新解释?不用担心,但仍然在寻找答案。它必须是可能的,它在任何浏览器中都是非常愚蠢的限制 – 2010-04-15 12:50:01

+0

丹尼尔,我不认为你会得到超出已经建议的解决方案的许多解决方案。每个浏览器/ cookie的一次会话对于大多数浏览器现在的工作来说都是非常重要的。也许试着想想另一种方式来实现你正在做的事情。换句话说 - 为什么你需要在新的浏览器窗口中进行不同的会话,并且能否以某种方式解决问题? – codeulike 2010-04-15 12:58:02

回答

6

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

如果您有一个运行不同浏览器(例如IE和Firefox)的选项,它们不会共享cookie并且会有不同的会话。

编辑:

如果你有超过IIS主机头和DNS在您的环境控制,您可以使用许多不同的域名 - 每次会话中。

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

+0

是的,我知道,但围绕它的是什么。当我打开新窗口时将域名更改为IP地址时,它确实为我提供了第二个会话,这很酷,但后来我仅限于2个会话。必须有更好的方法来解决这个问题。 – 2010-04-15 12:32:47

+0

@Daniel:你可以设置IIS,以便你可以使用'a.domainname.com','b.domainname.com'。 'c.domainname.com'等。这种方式你有无限的会话。 – Aaron 2010-04-15 12:46:57

+0

是的,但多数民众赞成有点极端,必须肯定是客户端解决这个问题 – 2010-04-15 12:51:57

0

我不认为有这样做的方法,因为Cookie存储在浏览器级别 - 无论您打开多少窗口,您仍然会有相同的Cookie,因此会话也是如此。

也许这是可能的,如果您使用Cookieless sessions,我不确定,虽然有cookieless会话路线有很多缺点。

编辑:根据您的情况,实现您尝试实现的一种方法可能是将多个不同的域名/ URL指向同一个ASP.NET站点,这将允许您保留cookies和会话分开。但是如果你需要每个浏览器超过2或3个会话,那么这将变得愚蠢。

+0

nope,它的遗留系统,所以我不能改变网站运行无cookie – 2010-04-15 12:38:57

+0

jip,多个不同的网站到网站确实允许我创建新的会话,但其有限的 – 2010-04-15 12:39:59

+0

Cookieless会话使得它更容易做会话修复攻击,特别是在asp.net中,你不能在登录时手动创建一个新的会话http://blogs.sans.org/appsecstreetfighter/2009/06/14/session-attacks-and-aspnet-part-1/ – 2010-04-15 12:49:49

3

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

+0

nope,你不能问大家去更改他们的注册表设置,怀疑很多人甚至知道如何做到这一点 – 2010-04-15 12:41:23

+0

如果您像IT部门一样在公司环境中工作,IT部门会自动完成此更改 - 因此它是基于Intranet的应用程序的一个很好的解决方案。 – 2010-04-15 13:49:46

相关问题