我有一个包含多个子域的应用程序,subone.parent.com、subtwo.parent.com。
我在 parent.com/login 上有一个登录页面。当用户登录时,我会根据他们所属的域将他们重定向到正确的域。这工作正常。
FormsAuthenticationTicket ticket = new FormsAuth...
string encTicket = FormsAuthentication.Encrypt(ticket);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
cookie.Domain = subone.parent.com
Response.Cookies.Add(cookie)
这正确地为 subone.parent.com 而不是 subtwo.parent.com 验证了用户。但是我想做以下事情。
如果用户返回 parent.com,我想知道他们已登录并将其重定向回 subone.parent.com。
是否有实现此目的的最佳实践?还是我必须为 parent.com 设置另一个 cookie?
如果重要的话,我正在 asp.net mvc 中工作。
谢谢!
最佳答案
您可以像尝试一样跨域共享 cookie,但这并不简单,例如 here .
另一种选择是将 cookie 设置为“.parent.com”,而不是明确指定子域,并使用 cookie 存储子域的详细信息。然后您可以从您的任何子域(以及假设其为 www.parent.com 的父域)访问 cookie。
如果您使用 MVC,您可以很容易地创建自定义过滤器并添加到 www.parent.com Controller 以检查 cookie 是否存在,如果是,则重定向到 cookie 指定的子域。更多过滤器详情 here .
关于ASP.NET 子域 Cookie(父域和一个子域),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2172490/