CookieAuthentication cookie 在应用程序池回收后无效

CookieAuthentication cookies are invalid after application pool recycle

我有一个 .net 核心项目使用 Microsoft.AspNetCore.Authentication (2.2.0) 配置为使用 CookieAuthentication。 Cookie 被配置为持久性并在 7 天后过期。问题是每当应用程序池被回收时,所有登录的用户都会注销。

我根本没有使用会话。我已经验证了 cookie 仍然存在于网络浏览器中,似乎现有的 cookie 被服务器确定为无效。我怎样才能改变这种行为?

这是当前配置:

services
    .AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
    .AddCookie(
        CookieAuthenticationDefaults.AuthenticationScheme,
        options =>
        {
            options.AccessDeniedPath = "/";
            options.LoginPath = "/";
            options.LogoutPath = "/Authentication/Logout";
            options.Events.OnRedirectToLogin = context =>
            {
                context.Response.Redirect("/?returnUrl=" + context.Request.GetEncodedPathAndQuery());

                return Task.CompletedTask;
            });

错误是 IIS 中应用程序池的配置错误。在应用程序池的 "Advanced settings" 中,设置 "Load User Profile" 需要设置为 "true"。