允许同时从一台计算机多次登录的asp.net成员资格提供程序

允许同时从一台计算机多次登录的asp.net成员资格提供程序,asp.net,membership,provider,Asp.net,Membership,Provider,我有一个单一的应用程序,允许多个用户从一个工作站登录。对于这个应用程序,单个用户可以有两个帐户,将用户指向两个不同的数据库 我面临的问题是,当我使用一个用户登录时(A),然后打开第二个选项卡并作为另一个用户登录(B),两个登录的成员资格和配置文件都指向用户(B) 我不知道如何区分这两个登录。两个浏览器,或者将会话密钥放入查询字符串。问题不在服务器端,而是浏览器 你无法控制这种行为。据我所知,处理这一问题的唯一选择是在一个会话中使用一个浏览器,在另一个会话中使用完全不同的浏览器。(一个在Firef

我有一个单一的应用程序,允许多个用户从一个工作站登录。对于这个应用程序,单个用户可以有两个帐户,将用户指向两个不同的数据库

我面临的问题是,当我使用一个用户登录时(A),然后打开第二个选项卡并作为另一个用户登录(B),两个登录的成员资格和配置文件都指向用户(B)


我不知道如何区分这两个登录。

两个浏览器,或者将会话密钥放入查询字符串。

问题不在服务器端,而是浏览器

你无法控制这种行为。据我所知,处理这一问题的唯一选择是在一个会话中使用一个浏览器,在另一个会话中使用完全不同的浏览器。(一个在Firefox中,一个在Chrome中)

根据我的经验,即使您打开了同一浏览器的两个实例(例如,Firefox的两个实例),会话也是共享的,因此在一个实例中以person a的身份登录,然后在第二个实例中以person b的身份登录将导致在下次单击链接或执行操作时,第一个实例也以person b的身份登录

编辑

再想一想,如果这是一个内部应用程序,并且您小心地避免会话篡改,那么您可以尝试使用无cookieless模式。由于其局限性,特别是安全性方面的考虑,我从未尝试过这种方法——它在面向公众的网站上不实用,但从理论上讲,它可能会起作用,因为标识符在URL中,而不是在cookie或浏览器会话中


事实上,它在两种不同的浏览器下工作;我的印象是,它必须用我访问页面的机器,而不是浏览器来做更多的工作。在我看来,会员资格提供者以这种方式工作(到了毫无意义的地步)简直是疯了。在桌面模式下运行两个会话(Silverlight应用程序)时,它至少保留了成员身份信息,您认为它在这个实例中也会共享一个会话。话虽如此,有没有办法防止用户在浏览器中的同一会话下登录两次?没有。正如我所说,这是一个浏览器级别的问题,在客户端的PC上。在web应用程序中,本质上,你需要知道你能控制什么和不能控制什么,这是您无法控制的事情之一。不确定您对会话密钥的建议是什么,我没有使用查询字符串。我应该在我的帖子中提到这是silverlight应用程序,不确定这是否与这个建议有区别,但从我所能告诉a的情况来看,当涉及到使用身份验证时,我对我能做的事情的访问是有限的。Login();