所以我有一个站点位于 URL“mysite.com”上,另一个站点位于“subdomain.mysite.com”上。用户帐户存储在“mysite.com”中,因此当我需要登录“subdomain.mysite.com”时,我会将用户带到“mysite.com”,他们输入他们的凭据以正常身份验证并确保身份验证通过在 cookie 中设置如下,cookie 可在“subdomain.mysite.com”中使用domain
:
HttpCookie cookie = FormsAuthentication.GetAuthCookie(username, true);
cookie.Domain = ".mysite.com";
Response.Cookies.Add(cookie);
然后我将它们重定向回“subdomain.mysite.com”,谢天谢地,用户在那里通过了身份验证。
除了注销时,一切正常。当用户尝试从任何站点注销时,我会按预期删除身份验证 cookie:
FormsAuthentication.SignOut();
但由于某种原因,cookie 没有被删除,用户保持登录状态。
我试过直接使用删除cookie,Request.Cookies[FormsAuthentication.FormsCookieName]
但仍然没有。由于某种原因,Chrome 紧紧抓住 cookie:我可以在 Chrome 的开发人员工具中看到它。
我究竟做错了什么?帮助!