刷新时asp.net mvc中的会话超时

时间:2017-03-09 06:15:47

标签: c# asp.net asp.net-mvc asp.net-mvc-4 session

我正在运行ASP.NET 4.0应用程序并使用plesk控制面板发布它。我已完成以下操作。

1.i将web.config文件中的会话超时设置为:

<sessionState timeout="20000"/>
  1. 我在登录控制器中处理会话变量,如下所示:
  2. Session["userId"] = lUser.userId; Session["role"] = lUser.userType;

    进入其他控制器,代码如下:

    if (Session["role"] == null)
    {
         return RedirectToAction("Index", "Login");
    }
     else if (Session["role"].ToString() == "Admin" || Session["role"].ToString() == "Super Admin")
    {
        return View();
    }
    

    这个代码在我的本地服务器上没问题,但是当使用plesk控制面板发布到真实服务器时,第一次也可以。但是当我第二次点击同一菜单时,它会重定向到登录页面。

2 个答案:

答案 0 :(得分:0)

尝试添加:

protected void Session_Start(Object sender, EventArgs e)
{
    Session["init"] = 0;
}

到global.asax

答案 1 :(得分:0)

而不是SessionState mode =“InProc”使用SessionState Mode =“StateServer”,但您需要确保您正在使用该应用程序的服务器使StateServer处于活动状态。

<sessionState mode="StateServer" timeout="20000" cookieless="false" />