登录到一个ASP.net网站注销在同一台服务器上托管的另一个网站?

时间:2013-03-24 07:45:05

标签: asp.net forms-authentication

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

我的配置文件如下所示

<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);

使用以下其他网站。此外,该网站都有不同的用户标识集

   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);

1 个答案:

答案 0 :(得分:4)

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

请参阅Forms Authentication across Sub-Domains on local IIS

了解更多信息

克里斯