Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 与会话相关的逻辑_Asp.net_.net_Asp.net Mvc 3_Asp.net Mvc 4 - Fatal编程技术网

Asp.net 与会话相关的逻辑

Asp.net 与会话相关的逻辑,asp.net,.net,asp.net-mvc-3,asp.net-mvc-4,Asp.net,.net,Asp.net Mvc 3,Asp.net Mvc 4,我有一个要求,显示用户一个弹出窗口时,还有一分钟的会话到期时间。假设会话到期时间为5分钟,我需要显示一个弹出窗口“您的会话将在下一分钟到期”,如果要继续,请单击此处,否则单击取消。所以,若用户单击ok,时间将再次自动刷新,若取消,则无需执行任何操作。 为此,我在Layout中的共享文件夹中执行了类似的操作 var myVar = setInterval(function () { myTimer() }, 240000); function myTimer() { var r = con

我有一个要求,显示用户一个弹出窗口时,还有一分钟的会话到期时间。假设会话到期时间为5分钟,我需要显示一个弹出窗口“您的会话将在下一分钟到期”,如果要继续,请单击此处,否则单击取消。所以,若用户单击ok,时间将再次自动刷新,若取消,则无需执行任何操作。 为此,我在Layout中的共享文件夹中执行了类似的操作

var myVar = setInterval(function () { myTimer() }, 240000);
function myTimer() {
    var r = confirm("Session will expire in a minute. will you like to continue working?");
    if (r == true) {
        var _Id = $("#Id").val();

        $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "../Home/ResetUser",
            data: "{'User_ID':'" + _Id + "'}",
            dataType: "json",
            success: function (data) {
                if (data.Data == 'Done') {
                }
            },
            error: function (xhr) {
            }
        });
    }
    else {
        window.clearInterval(myVar);
    }
但我有一个问题,那就是我没有在所有页面中派生相同的布局。有些模块有不同的布局,有些页面不需要任何布局。因此,对于不同的布局或不使用布局的页面,我需要保持脚本以不同的方式运行

如果我为不同的布局保留不同的脚本,效果会好吗? 还假设我已经登录并设置了一个会话变量。现在时间设置为5分钟 用户来到主页,它没有使用我保存上述脚本的布局。 我在这个页面中添加了不同的脚本,脚本函数时间开始

但当用户转到另一个页面时,会话时间会刷新吗? 我必须在那个页面上加载我上面的脚本函数?
我做的对吗。

您好,您可以在\u viewstart.cshtml文件中编写脚本

无论您使用的是哪种布局页面,都会对每个请求执行此操作

但当用户转到另一个页面时,会话时间会刷新吗?我必须在那个页面上加载我上面的脚本函数

是当用户刷新页面或再次请求服务器时,会话时间将重置


这是实现您的要求的一种方法。

FYI,它的名称是“.NET”,而不是“dot-NET”。此外,您不需要在标题中使用它,因为它在标记中。您的脚本存在轻微的逻辑缺陷-如果用户在确认出现时离开键盘,10分钟后返回-如果他们单击“是”继续工作,这将不会刷新他们的会话,因为他们已经超时。不确定JS确认是这里的最佳选择-如果会话确实过期,您可能还需要一些功能来采取行动(例如重定向到登录)。