我在ASP.Net应用程序中使用Asp.Net Core Identity管理登录会话。 为此,我使用 app.UseCookieAuthentication 函数创建并存储 .AspNet.CookieAuthentication cookie,以便浏览器记住用户的登录会话。
这是为了防止用户每次打开网站时都必须重新输入其凭据。登录会话运行8个小时。
用于处理此登录请求并创建cookie的Web应用程序的域位于:
app1.domain1.co.uk
但是我希望将cookie的域设置为:
domain1.co.uk
这是因为我计划在以下位置的单独子域上运行另一个应用程序:
app2.domain1.co.uk
此应用程序还使用Asp.Net Core Identity,并且访问与“ app1”完全相同的Identity数据库。当用户成功登录 app1.domain1.co.uk 然后打开 app2.domain1.co.uk 时,我希望应用程序选择从中存储的登录会话app1并使用它自动登录到app2,以防止用户不得不再次输入其登录详细信息。
我为该应用提供的代码。UseCookieAuthentication函数如下:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider
{
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
},
ExpireTimeSpan = TimeSpan.FromHours(8),
SlidingExpiration = true,
CookieDomain = ".domain1.co.uk"
});
如您所见,我指定cookie的域应位于“ .domain1.co.uk”。但是,当我测试我的应用程序并在任何浏览器中查看cookie时,域仍设置为 app1.domain1.co.uk 。
对于Cookie为什么拒绝将域设置为我指定的内容的任何帮助或指示,我们深表感谢。
感谢您的帮助。