1

有两个具有相同域但需要不同身份验证的网站。但是当两个网站都在同一个浏览器上登录时,后者会注销前一个。我可以看到这种情况正在发生,因为当一个用户登录到一个网站时,会发出不同的表单身份验证票,这会更新第一个身份验证票。为什么两个网站都使用相同的身份验证票?如何防止一个网站的身份验证票更新另一个网站。

我的配置文件如下所示

<authentication mode="Forms">
  <forms  loginUrl="~/Login.aspx" name=".ASPXFORMSAUTH" defaultUrl="~/Default/Home.aspx"    protection="All" timeout="10" slidingExpiration="true" requireSSL="false"/>
 </authentication>

以下用于签发一个网站的身份验证票

 FormsAuthentication.SetAuthCookie(userid,true);

对于另一个网站,以下使用。此外,这两个网站都有不同的用户 ID

   var ticket = new FormsAuthenticationTicket(1,userid, DateTime.Now,
                                                                       DateTime.Now.AddMinutes(90), false,string.Empty, FormsAuthentication.FormsCookiePath);
string cookieStr = FormsAuthentication.Encrypt(ticket);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, cookieStr);

Response.Cookies.Add(cookie);
4

1 回答 1

4

如果两个站点都是子域,则在 webconfig 中设置 cookie 域,例如 subdomain.domain.com 否则 cookie 将跨 domain.com 工作

请参阅本地 IIS 上跨子域的表单身份验证

了解更多信息

克里斯

于 2013-03-24T09:43:07.413 回答