首页 > 解决方案 > 会话未结束时停止页面刷新 ASP.NET MVC C#

问题描述

我编写了代码以在页面空闲 2 分钟时刷新页面(借助 stackoverflow 帮助)。代码工作正常,但我的问题是当用户在页面上工作时,会话结束时应用程序仍会刷新。我需要帮助来重置我的代码中的会话,以在页面不空闲时停止应用程序重置。

网页配置

<system.web>
   <sessionState timeout="2" /> 
</system.web>

_布局页面

<script>
  //session end reset page
  var sessionTimeoutWarning = @Session.Timeout- 1;

  var sTimeout = parseInt(sessionTimeoutWarning) * 60 * 1000;

  setTimeout('SessionEnd()', sTimeout);

  function SessionEnd() {
    window.location = "/Home/SessionExpired";
  }
</script>

家庭控制器

public ActionResult SessionExpired()
{
    Session["conectionstring"] = null; 
    Session["patientid"] = null;
    Session.Clear();
    Session.Abandon();
    return RedirectToAction("Index", "Home");
}

标签: c#asp.net-mvcsession

解决方案


你可以在 web.config 文件中尝试slidingExpression=true

<authentication mode="Forms">
  <forms loginUrl="login.aspx"
    name="loginPage"
    cookieless="UseCookies"
    slidingExpiration="true" />
</authentication>


推荐阅读