ASP.NET 会话超时行为
ASP.NET Session timeout behavior
我在我的代码中使用 Session 对象来存储将保存到数据库的用户登录信息。
我想确定会话超时时的行为。
如果会话超时,用户可以做什么?我想浏览到不同的页面不会恢复会话?所以唯一的选择是关闭所有浏览器并返回并激活 Session?
我想知道什么情况下Session不会再存活
会话超时是否也会触发 global.aspx 中的 Session_End?
A session is considered active as long as requests continue to be made
with the same SessionID value. If the time between requests for a
particular session exceeds the specified time-out value in minutes,
the session is considered expired. Reference
我相信你是在检查用户是否在每个页面(或masterpage)中登录,所以只要用户不空闲并且他正在使用系统,会话就会被更新和不用担心。
如果用户长时间空闲并且会话已过期,那么出于安全原因让他重新登录是合乎逻辑的。
注销时使用:
Session.Remove("sessionname");
我相信您没有通过在 Session_End 事件中对会话对象调用 Abandon 方法来明确终止会话。
注销会话使此事件成为 fire.And 显然,在尝试在页面之间导航时必须将用户带到登录页面。
使用会话来存储经过验证的用户的详细信息是很常见的。一段时间不活动后会话超时(我相信默认情况下是 20 分钟,但可以在 web.config 中更改)这通常是可取的,因为如果用户放弃该站点(或离开他们的计算机)而没有登录out 它将终止(最终)会话并有效地将它们自动注销。
读取或写入会话将重置超时倒计时。因此,如果每个网页都检查用户是否已登录,如果在 20 分钟内查看新页面,他们将需要做的所有事情都不会被注销。
如果用户注销(或会话超时),他们不需要关闭浏览器,只需返回登录页面并重新登录即可。因此,对于每个应受保护的页面,检查它们的会话是否存在并已登录,否则将它们重定向到登录页面。
是的,会话超时会触发 session_end 事件。
我在我的代码中使用 Session 对象来存储将保存到数据库的用户登录信息。
我想确定会话超时时的行为。
如果会话超时,用户可以做什么?我想浏览到不同的页面不会恢复会话?所以唯一的选择是关闭所有浏览器并返回并激活 Session?
我想知道什么情况下Session不会再存活
会话超时是否也会触发 global.aspx 中的 Session_End?
A session is considered active as long as requests continue to be made with the same SessionID value. If the time between requests for a particular session exceeds the specified time-out value in minutes, the session is considered expired. Reference
我相信你是在检查用户是否在每个页面(或masterpage)中登录,所以只要用户不空闲并且他正在使用系统,会话就会被更新和不用担心。 如果用户长时间空闲并且会话已过期,那么出于安全原因让他重新登录是合乎逻辑的。
注销时使用:
Session.Remove("sessionname");
我相信您没有通过在 Session_End 事件中对会话对象调用 Abandon 方法来明确终止会话。
注销会话使此事件成为 fire.And 显然,在尝试在页面之间导航时必须将用户带到登录页面。
使用会话来存储经过验证的用户的详细信息是很常见的。一段时间不活动后会话超时(我相信默认情况下是 20 分钟,但可以在 web.config 中更改)这通常是可取的,因为如果用户放弃该站点(或离开他们的计算机)而没有登录out 它将终止(最终)会话并有效地将它们自动注销。
读取或写入会话将重置超时倒计时。因此,如果每个网页都检查用户是否已登录,如果在 20 分钟内查看新页面,他们将需要做的所有事情都不会被注销。
如果用户注销(或会话超时),他们不需要关闭浏览器,只需返回登录页面并重新登录即可。因此,对于每个应受保护的页面,检查它们的会话是否存在并已登录,否则将它们重定向到登录页面。
是的,会话超时会触发 session_end 事件。