未在CookieAuthenticationOptions ASP.NET中设置CookieDomain

时间:2018-12-05 18:14:52

标签: c# asp.net cookies login asp.net-identity

我在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为什么拒绝将域设置为我指定的内容的任何帮助或指示,我们深表感谢。

感谢您的帮助。

0 个答案:

没有答案