有两个网站具有相同的域但需要不同的身份验证。 但是,当两个网站都登录到同一个浏览器时,后者会退出前一个网站。我可以看到这种情况正在发生,因为当一个用户登录到一个网站时,会发出不同的表单身份验证票证,这会更新第一个身份验证票证。为什么两个网站都使用相同的身份验证票?如何防止一个网站的认证券更新另一个网站。
我的配置文件如下所示
<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);
答案 0 :(得分:4)
如果两个站点都是子域,则在webconfig中设置cookie域,例如subdomain.domain.com,否则cookie将跨域domain工作
请参阅Forms Authentication across Sub-Domains on local IIS
了解更多信息
克里斯