如果 session 空闲时间达到给定的 5 分钟,我想在登录页面上显示“您的 session 已过期”。
Sql session 状态和表单例份验证超时的超时值应该是多少:
- same?
- session state> form timeout
- Form time out > session time.
理想情况下,如果有人可以解释上述之间的差异,我们将不胜感激。
目前,我的代码如下所示,即使登录重定向空闲 5 分钟后,Session["SessionID"] 也不为 Null:
On Session_Start()
Session["SessionID"] = Guid.NewGuid();
在 LogOn.cshtml 上:
@{
string sessionExpiredMsg = string.Empty;
HttpContext ctx = HttpContext.Current;
if (ctx.Session["SessionID"] == null)
{
sessionExpiredMsg = "Your session has expired. Please re-login again.";
}
}
@
在 web.config 上:
<sessionState
timeout=5....
<authentication mode="forms"
timeout=5....
谢谢。
最佳答案
- session 状态超时意味着您的 ASP.NET session 将在 x 分钟后过期。这并不意味着您不再经过身份验证。
- 表单超时意味着 x 分钟后,系统会提示您再次登录(不再进行身份验证)。
如果您的 session 状态超时持续时间比表单超时时间长,这不是问题,因为一旦您再次登录,您将检索最后一个(如果未过期)。
关于asp.net - sql sessionState 超时与表单例份验证超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5803898/