禁用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 中的所有用户