禁用asp.net中的自动注销功能

Posted

技术标签:

【中文标题】禁用asp.net中的自动注销功能【英文标题】:disable auto logout feature in asp.net 【发布时间】:2011-04-19 21:14:08 【问题描述】:

我正在使用表单身份验证。我希望我的应用程序不应该在某个时间后自动注销用户。

【问题讨论】:

为什么要使用表单身份验证来执行此操作? 【参考方案1】:

您可以像这样更改超时:

<system.web>
    <authentication mode="Forms">
          <forms timeout="99999999"/>
    </authentication>
</system.web>

更多配置选项可以在here找到。

确保您的会话超时不小于表单身份验证超时。否则,您的用户将很难使用您的网站。

您可以在 web.config 中更改会话超时:

<system.web> 
    <sessionState timeout="999999999" /> 
<system.web> 

更多详情请见here。

让某人无限期登录可能是一个安全问题。

【讨论】:

如果您的会话超时时间小于表单身份验证超时时间会怎样?我原以为这是一个相对常见的场景(例如,堆栈溢出会记住我几天的登录详细信息,我怀疑 ti 会保持这么长时间的会话)。您不能依赖会话中的所有数据,但我个人大部分时间都不会... 在用户实际登录并尝试使用网站时,会话数据可能会丢失。 我不知道 SO 是如何构建的,但您的登录信息将保存在 cookie 中……这就是 SO 记住您的登录详细信息的方式。 我原以为如果你保持会话时间过长,你会对服务器资源做坏事。你是对的,你可能会丢失数据,但我不确定你是否应该在会话中存储重要的东西(我讨厌旅游网站之类的东西,你已经完成了搜索然后去查看其他网站并回来它告诉您会话超时,因此您应该重新开始 - 绝对没有理由在会话中保留搜索详细信息)。【参考方案2】:

我不知道你是否可以完全关闭它,但你可以尝试在你的网络配置中设置一个大的超时值:

    <authentication mode="Forms">
        <forms loginUrl="Login.aspx" timeout="9999" slidingExpiration="true" defaultUrl="~/Default.aspx"/>
    </authentication>

【讨论】:

以上是关于禁用asp.net中的自动注销功能的主要内容,如果未能解决你的问题,请参考以下文章

交换 Azure Web App 部署槽会注销 ASP.NET Core RC2 中的所有用户

Symfony HWIOAuthBundle - 如何禁用自动注销?

会话 Cookie,自动注销

注销功能不适用于 ASP.NET 标识

注销功能不适用于 ASP.NET 标识

ASP.net 2.2 MVC:注销