Cookies ASP核心Cookie验证,添加的声明提前到期

Cookies ASP核心Cookie验证,添加的声明提前到期,cookies,razor-pages,asp.net-core-3.1,Cookies,Razor Pages,Asp.net Core 3.1,我遇到了一个奇怪的问题。。。当用户登录时(使用signInManager.PasswordSignInAsync),我会将他们重定向到一个razor页面,在那里他们选择一些设置,然后我使用signInManager.SignInWithClaimsAsync,向他们的cookie添加声明,但该声明似乎在cookie过期之前失效或丢失-用户仍在登录,但他的cookie似乎不再具有我添加的声明 这是预期的行为吗?如果是,我如何使声明在整个cookie过期之前有效?我知道用户登录后不能更改cookie

我遇到了一个奇怪的问题。。。当用户登录时(使用
signInManager.PasswordSignInAsync
),我会将他们重定向到一个razor页面,在那里他们选择一些设置,然后我使用
signInManager.SignInWithClaimsAsync
,向他们的cookie添加声明,但该声明似乎在cookie过期之前失效或丢失-用户仍在登录,但他的cookie似乎不再具有我添加的声明

这是预期的行为吗?如果是,我如何使声明在整个cookie过期之前有效?我知道用户登录后不能更改cookie,所以有没有其他方法可以实现这一点

以下是我在Startup.cs中添加cookies的方式:

  .AddIdentityCookies(c => c.ApplicationCookie.Configure(a =>
  {
    a.SlidingExpiration = true;
    a.ExpireTimeSpan = TimeSpan.FromMinutes(60 * 8);
    a.Events.OnRedirectToLogin = HandleCookieRedirect;
    a.Events.OnRedirectToAccessDenied = HandleCookieRedirect;
  }));
您是否为您的cookie打开了“IsPersistent”=true? 还请注意,ExpiresUtc采用“UTC”格式,因此请确保您正在使用:
DateTime.UtcNow.AddMinutes(xxx)方法或等效方法来添加到期时间。

我确实设置了IsPersistent,这取决于当我调用
signInManager.SignInWithClaimsAsync
时,用户是否选中了“记住我”框。这就是我添加索赔等待
signInManager.SignInWithClaimsAsync(用户,RememberMe,new[]{new claim)的方式(WebConstants.GroupClaim,SelectedGroup.ToString())})
有没有办法设置该声明的过期时间?