如何在 ASP.NET Core 的 web.config 中设置会话超时
Posted
技术标签:
【中文标题】如何在 ASP.NET Core 的 web.config 中设置会话超时【英文标题】:how to set Session Timeout in web.config in ASP.NET Core 【发布时间】:2021-12-01 19:36:27 【问题描述】:如果用户暂停超过 20 分钟并且没有使用该网站,该网站会将她从帐户中删除,并且用户必须重新登录。
主机支持说在 web.config 中使用 Session Timeout。我尝试了很多方法但都失败了,例如:
services.AddSession(options =>
options.IdleTimeout = TimeSpan.FromHours(6);
);
services.ConfigureApplicationCookie(options =>
options.ExpireTimeSpan = TimeSpan.FromMinutes(360);
options.LoginPath = "/Identity/Account/Login";
options.SlidingExpiration = true;
);
我的 web.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\ModiranVira.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
</system.webServer>
</location>
</configuration>
<!--ProjectGuid: DCDBD7A7-41AE-4CFE-A641-D1F9750A311C-->
【问题讨论】:
***.com/questions/34979680/… 建议ExpireTimeSpan
仅适用于持久登录。
我可以在这个链接中为asp.net核心使用这个答案***.com/questions/1205828/…
【参考方案1】:
IIS 上有一个会话状态模块。当您选择状态服务器时,它将允许您设置会话超时。
或者你可以在 ASP 模块中设置。
最后检查您的应用程序池的空闲超时,应用程序池空闲超时也与您的会话超时相匹配。
【讨论】:
但是我的网站是在一个真实的主机 (Plesk) 上并且网站支持说你必须设置会话超时 我可以在这个链接中为 asp.net core ***.com/questions/1205828/…使用这个答案吗 你可以试试。以上是关于如何在 ASP.NET Core 的 web.config 中设置会话超时的主要内容,如果未能解决你的问题,请参考以下文章
深入研究 Mini ASP.NET Core(迷你 ASP.NET Core),看看 ASP.NET Core 内部到底是如何运行的
如何在 ASP.Net Core 中使用 IHostedService
如何按照存储库模式在 Asp.Net Core 5.0 项目上实现 .Net Core Identity?