如何在MVC会话超时后停止自动刷新我的登录页面?

时间:2018-01-25 05:39:18

标签: javascript c# jquery asp.net-mvc session

我正在尝试创建一个MVC应用程序,该应用程序必须在一段时间后自动超时(比方说2分钟)。我用它在Web.config中设置会话超时:

<sessionState mode="InProc" timeout="2">
  </sessionState>

如果会话超时,这是重定向的代码:

<script>
            (function (delay) {
                

    function getTimeout() {
        return setTimeout(function () {
            console.log('Make SESSION expire');
            window.location.href = '@Url.Action("Index", "Home")'
        }, delay);
    };

    // start the session timer
    var timeoutSession = getTimeout();

    $(document).ajaxSend(function() {
        console.log('timeout reset');
        clearTimeout(timeoutSession);
        timeoutSession = getTimeout();
    });
    })(2*60*1000);
        </script>

所有这一切都运行正常,应用程序在完成2分钟的活动后退出。 但是,我遇到的问题是,自动注销后重定向到的登录页面在2分钟后仍然会刷新,即使会话超时后也是如此。当没有会话运行时,你能帮我停止刷新吗?

编辑: 发现问题,我在_layout文件中使用了脚本,导致每个页面都刷新。现在我刚刚登录后将代码用于页面(如第1页所述),并且它已停止刷新。

但是现在,还有另外一个问题,该应用只会从此页面自动注销(第1页)。如果我从第1页(例如第2页)转到其他页面,该应用程序不会从第2页退出。

0 个答案:

没有答案