如何在 ASP.NET Core MVC 中设置会话超时/到期时间?

sri*_*lla 6 session-timeout session-cookies asp.net-core-mvc asp.net-core aspnetboilerplate

我正在使用 ASP.NET Core 的 ASP.NET Zero 版本 7、MVC 和 jQuery 项目。

我正在尝试设置会话超时/到期时间,以便在应用程序空闲一段时间后自动从应用程序注销。有人可以告诉我该怎么做吗?

在 ASP.NET Zero 版本 8 中,他们在用户管理设置中提供此配置。

aar*_*ron 7

ASP.NET Core MVC

MVC 的会话过期由 ASP.NET Core 通过 cookie 提供,独立于 ASP.NET Zero。

Startup.csConfigureApplicationCookie之后调用:IdentityRegistrar.Register

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;
    });

    // ...
}
Run Code Online (Sandbox Code Playgroud)

ASP.NET Core v2.2.8 CookieAuthenticationOptions.cs#L30-L36的默认值:

public CookieAuthenticationOptions()
{
    ExpireTimeSpan = TimeSpan.FromDays(14);
    ReturnUrlParameter = CookieAuthenticationDefaults.ReturnUrlParameter;
    SlidingExpiration = true;
    Events = new CookieAuthenticationEvents();
}
Run Code Online (Sandbox Code Playgroud)

ASP.NET 零(适用于 ASP.NET Core)

ASP.NET Zero v7.2.0+ 提供: