我们正在创建一个包含两个不同部分的MVC Web应用程序:
两个站点都有自己的用户集 - 如果用户登录到domain.com,则不应在管理站点上进行身份验证 - 反之亦然。
我在Startup.cs中为两个站点设置了OWIN提供程序:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = "ApplicationCookie",
LoginPath = new PathString("/Login"),
CookieDomain = "domain.com"
});
在管理项目中类似的CookieDomain设置为“admin.domain.com”。
然而 - 当我部署并登录到domain.com时,创建的“.AspNetApplicationCookie”属于域“.domain.com”(注意点) - 这意味着任何登录域的用户.com还在所有子域(包括admin.domain.com)上进行了身份验证。这不是我想要的。
你们有没有人知道为什么我的Startup.cs中的CookieDomain被忽略了?这是我们的应用程序的主要问题。
我可以找到很多关于跨子域共享身份验证的帖子 - 但我特别不想这样做。每个cookie必须属于我的CookieComain属性中指定的确切域。
任何输入都会非常感激:)
感谢。
更新
因此,使用Chrome或Firefox时,这似乎只是一个问题。如果我使用IE登录,则cookie域将设置为预期值。 有没有人经历过这个?也许可能有一个修复它?