为什么 cookie ExpireTimeSpan 设置不起作用?

Why doesn't cookie ExpireTimeSpan setting work?

我用过:

services.AddAuthenticationCore().ConfigureApplicationCookie(o =>
{
    o.ExpireTimeSpan = TimeSpan.FromHours(1);
    o.SlidingExpiration = true;
});

在 ASP.NET Core MVC 项目的 Startup.cs 中设置我的身份验证 cookie ExpireTimeSpan

我可以看到登录后在网络浏览器中设置了正确的 cookie 过期时间,但每次 30 分钟后它会自动注销,即使我每 10 秒刷新一次网站也是如此。

如果我设置的ExpireTimeSpan小于30分钟,可以正确超时,但是expire-time无法刷新

为什么是 30 分钟?在哪里可以更改 30 分钟超时设置?还是在IIS中设置?

Why is it 30 minutes?

这是 ASP.NET Core Identity 的默认值。

Where can I change the 30 minutes timeout setting? Or is it set in IIS?

没有。在 IdentityRegistrar.Register:

之后调用 ConfigureApplicationCookie
public IServiceProvider ConfigureServices(IServiceCollection services)
{
    // ...

    IdentityRegistrar.Register(services);                  // No change
    AuthConfigurer.Configure(services, _appConfiguration); // No change

    services.ConfigureApplicationCookie(o =>
    {
        o.ExpireTimeSpan = TimeSpan.FromHours(1);
        o.SlidingExpiration = true;
    });

    // ...
}

"If you define it before the services.AddIdentity, your custom values will be overwritten."

https://github.com/aspnet/Identity/issues/1389#issuecomment-324257591