ASP.NET Core 会话超时

Mer*_*tez 7 asp.net session session-cookies asp.net-identity asp.net-core

我记得我们在 ASP.NET 中使用了 session.timeout 来更改会话超时,如果不更改,则为 20 分钟。

我尝试在 Startup.cs 中更改 ASP.NET Core 3.1 中的会话超时,但没有任何反应。我对操作员使用 Identity,并将“我认为”的空闲超时设置为 5 小时,但操作员在 1-2 分钟后退出,并且应该重新登录数百次才能完成一篇文章。

services.AddSession(options =>
{
    options.IdleTimeout = TimeSpan.FromHours(5);
    options.Cookie.HttpOnly = true;
    options.Cookie.IsEssential = true;
});
Run Code Online (Sandbox Code Playgroud)

我缺少什么?

小智 1

要在 ASP.NET Core 中使用会话状态,您需要将会话中间件添加到管道中。

important:中间件的顺序是关键。在 UseRouting 和 UseEndpoints 之间调用 UseSession。

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseSession();
}
Run Code Online (Sandbox Code Playgroud)

更多信息: MSDN