为什么不将Cookie ExpireTimeSpan设置工作?

时间:2018-02-27 15:30:35

标签: c# asp.net-core asp.net-core-mvc aspnetboilerplate asp.net-core-identity

我用过:

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分钟,则可以正确超时,但过期时间无法刷新。

为什么是30分钟?我在哪里可以更改30分钟超时设置?或者它是在IIS中设置的?

1 个答案:

答案 0 :(得分:2)

  

为什么是30分钟?

这是ASP.NET核心身份的默认设置。

  

我在哪里可以更改30分钟超时设置?或者它是在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;
    });

    // ...
}
  

“如果您在services.AddIdentity之前定义它,您的自定义值将被覆盖。”

     

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