asp.net - sql sessionState 超时与表单例份验证超时

标签 asp.net

如果 session 空闲时间达到给定的 5 分钟,我想在登录页面上显示“您的 session 已过期”。

Sql session 状态和表单例份验证超时的超时值应该是多少:

  1. same?
  2. session state> form timeout
  3. 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/

相关文章:

javascript - 将 javascript 函数 Hook 到每个回发

c# - 在 c# asp.net 中登录后禁用 Web 浏览器后退按钮

c# - ValidateRequest 每个控件

c# - 如何在运行时在 asp.net 中绑定(bind) radcombobox

jquery - 如何使用 jQuery 设置文本标签?

c# - 添加或减去的值会导致无法表示的 DateTime。参数名称

asp.net - Ajax.BeginForm 与 MVC 不会执行我的操作

asp.net - ASP.NET中如何从页面外部获取 session 值

c# - 如何获取正在访问 ASP.NET 应用程序的当前用户?

asp.net - ASP .Net VNext 和 Owin