ASP.NET核心会话在10秒后超时



我的网站会话在托管环境中每十秒超时一次,但在本地开发环境中运行良好。我无法更改超时时间。

services.AddSession(options =>
{
options.IdleTimeout = TimeSpan.FromSeconds(600);
options.Cookie.HttpOnly = true;
options.Cookie.IsEssential = true;
});

我甚至尝试过上面的配置,但它不起作用;即使操作完成,它仍然会在10秒钟后超时。

由您编写中间件逻辑,检查会话是否存在,并在会话不存在时重定向。

更好的方法是使用ASP.NET Core附带的标准Cookie身份验证。它内置了重定向功能。

https://learn.microsoft.com/en-us/aspnet/core/security/authentication/cookie?view=aspnetcore-3.0

我也遇到了类似的问题。它原来是覆盖会话选项的第三方库。我不得不使用dotnet源代码步进和断点来指示是哪个库造成了问题。

public OptionsFactory(IEnumerable<IConfigureOptions<TOptions>> setups, IEnumerable<IPostConfigureOptions<TOptions>> postConfigures, IEnumerable<IValidateOptions<TOptions>> validations)
{
_setups = setups as IConfigureOptions<TOptions>[] ?? new List<IConfigureOptions<TOptions>>(setups).ToArray();
_postConfigures = postConfigures as IPostConfigureOptions<TOptions>[] ?? new List<IPostConfigureOptions<TOptions>>(postConfigures).ToArray();
_validations = validations as IValidateOptions<TOptions>[] ?? new List<IValidateOptions<TOptions>>(validations).ToArray();
}

这里_setups有两个项目,而不是我提供的一个会话选项。

相关内容

  • 没有找到相关文章

最新更新