【问题标题】:MVC 4 Detecting Session TimeoutMVC 4 检测会话超时
【发布时间】:2014-05-09 06:10:48
【问题描述】:

无法使以下标准代码工作。寻找一个完整的示例项目或有关如何错误的帮助。 以下代码...

public override void OnActionExecuting(ActionExecutingContext filterContext)
{
    if (filterContext.HttpContext.Session != null)
    {
        if (filterContext.HttpContext.Session.IsNewSession)
        {
            string cookie = filterContext.HttpContext.Request.Headers["Cookie"];
            if ((cookie != null) && (cookie.IndexOf("_sessionId") >= 0))
            {
                filterContext.Result = newRedirectResult("~/SessionExpired/Index");  //redirect anywhere to message user UI , never hits this breakpoint
                return;
            }
        }
    }
    base.OnActionExecuting(filterContext);

}

是检查会话到期的标准。 但是在我的情况下,(cookie != null) && (cookie.IndexOf("_sessionId") >= 0)总是返回 false,因此永远不会重定向用户。

我正在使用一个全新的向导创建 MVC 4 项目进行测试。 我找不到完整的下载示例。我怀疑我的配置有问题。

<authentication mode="Forms">
    <forms loginUrl="~/Account/Login" timeout="1" slidingExpiration="true" name=".ASPXFORMSAUTH" />  
</authentication>    
<sessionState mode="InProc" timeout="1" cookieless="false"/>

请告知此代码失败的原因或提供包含完整下载示例项目的链接。 .Net 4.5 |对比 2012 |本地 IIS Web 服务器 , IIS Express

回复:Detecting Session expiry on ASP.NET MVC

【问题讨论】:

    标签: asp.net-mvc-4


    【解决方案1】:

    尝试将“_sessionId”中的“s”大写

    喜欢:

    sessionCookie.IndexOf("_SessionId") >= 0)
    

    搜索区分大小写。 此外,您所指的链接文章使用:

    sessionCookie.IndexOf("ASP.NET_SessionId") >= 0)
    

    【讨论】:

      【解决方案2】:

      这是一个很晚的答案,但它可能对其他人有所帮助。

      如果我没记错的话,要使这种方法起作用,表单身份验证超时必须设置为比会话本身更长的时间。这样,当您创建新会话时(在服务器内存中),来自身份验证的 cookie 仍将存在于用户的计算机中,以指示用户最近登录。

      您应该尝试以下方法:

      <authentication mode="Forms">
          <forms loginUrl="~/Account/Login" timeout="1000" slidingExpiration="true" name=".ASPXFORMSAUTH" />  
      </authentication>    
      <sessionState mode="InProc" timeout="10" cookieless="false"/>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-04-11
        • 1970-01-01
        • 1970-01-01
        • 2011-06-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多