如何在 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 使用 内存缓存

如何按照存储库模式在 Asp.Net Core 5.0 项目上实现 .Net Core Identity?

asp.net core1.x/asp.net core2.0中如何加载多个配置文件

如何使用 EF Core 在 ASP.NET Core 中取消应用迁移