2个网站的Context.User.Identity.GetUserName()正在访问同一个用户

时间:2014-03-25 10:00:48

标签: c# asp.net

我使用C#在Visual Studio 2013中创建了2个webapplication。

我已在两个应用程序中注册了2个新用户。

现在,如果我在Google Chrome中同时运行该应用程序。我得到以下内容; -

1)如果我在一个网站登录,如果我刷新其他网站页面。它也登录了。

如何让它分开,以便两者都能有单独的用户?

是否与Context.User.Identity有关,两个网站都使用相同的Cookie?

请帮助我理解它。

谢谢

2 个答案:

答案 0 :(得分:0)

假设您没有在两个网站的web.config中明确更改身份验证配置,那么您看到的行为是by design

  

要跨应用程序配置表单身份验证,请将Web.config文件的表单和machineKey部分的属性设置为参与共享表单身份验证的所有应用程序的相同值。

     

...除非另有说明,名称保护路径 validationKey 所有应用程序中的验证 decryptionKey 解密属性必须相同。

因此,如果您想为每个站点提供独立票证,最简单的解决方案是为每个站点提供自己独特的票证名称

<forms name=".ASPXFORMSAUTH_SITEA" ... />
<forms name=".ASPXFORMSAUTH_SITEB" ... />

出于安全考虑,您可能还需要考虑使用不同的加密/解密密钥。

答案 1 :(得分:0)

您可以通过执行以下操作使登录分离(我的猜测是您希望会话分离),如果从Web服务器运行多个网站,Microsoft建议这样做,最有可能避免此交叉cookie问题。 ..

在您的web.config中,为会话和身份验证Cookie提供唯一的名称,例如

<sessionState cookieName="UNIQUESESSION1" timeout="20"/>

<forms timeout="2880" name="UNIQUEAUTH1" />