我使用C#在Visual Studio 2013中创建了2个webapplication。
我已在两个应用程序中注册了2个新用户。
现在,如果我在Google Chrome中同时运行该应用程序。我得到以下内容; -
1)如果我在一个网站登录,如果我刷新其他网站页面。它也登录了。
如何让它分开,以便两者都能有单独的用户?
是否与Context.User.Identity
有关,两个网站都使用相同的Cookie?
请帮助我理解它。
谢谢
答案 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" />