c# - 如何在 MVC .Net 中的 session 超时后重定向?

标签 c# jquery .net asp.net-mvc session-timeout

我想在 2 分钟不活动后重定向我的页面,为此,我使用以下代码每 2.5 分钟 ping 一次 Controller ,如果 session 已过期,我将重定向到原始登录页面:

`<script language="javascript" type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script language="javascript" type="text/javascript">
    var ReqTime <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="201d6073455353494f4e0e74494d454f5554" rel="noreferrer noopener nofollow">[email protected]</a>
        ReqTime = ReqTime * 60 * 1000 + (.5 * 60 * 1000);
    $(function () {
    setInterval(CheckSession, ReqTime);
});

function CheckSession() {
    $.post('@Url.Action("SessionInfo","Home")', null, function () {
        console.log("Time");
    });
}
</script>

Controller :

 public ActionResult SessionInfo()
    {

        if (Session["LoginUserName"]==null)
        {
             return RedirectToAction("Index","Home");
        }


    }

此代码不会重定向到主页/索引。你能告诉我哪里出错了吗?

最佳答案

尝试使用 Javascript,因为从服务器端重定向需要回发

您可以通过 Controller 检查 session 并返回一个值来确定 session 是否结束

 function CheckSession() {
    $.ajax({
        type: "GET",
        url: "@Url.Action("SessionInfo", "Home")"
    }).done(function (data) {
        if (data === true) {
            window.location.href = "@Url.Action("Index", "Home")";
        }
    }).fail(function (e) {
        alert('Error');
    });
}

Controller

public JsonResult SessionInfo()
        {

            if (Session["LoginUserName"] == null)
            {
                return Json(true, JsonRequestBehavior.AllowGet);
            }
            return Json(false, JsonRequestBehavior.AllowGet);
        }

此代码用于解释

关于c# - 如何在 MVC .Net 中的 session 超时后重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48494942/

相关文章:

javascript - Jquery 更改类单击

c# - HttpWebRequest 无法通过代理连接?

c# - 如何将数字字符串排序为数字?

c# - 如何在C#中加密和解密字符串

javascript - 使用 jquery width() 和 on() 方法的动态 CSS

c# - 调用PayU rest api(创建订单)返回html而不是json响应

javascript - 带有大边框的 jquery ui 可调整大小的 div

c# - 带有 List<> 作为 TValue 的字典

c# - TestScheduler 创建的 ColdObserver 在 OnCompleted 时不取消订阅?

c# - 多次调用我的 WCF 服务方法