如何在 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 中设置会话超时的主要内容,如果未能解决你的问题,请参考以下文章