Asp.net 与会话相关的逻辑
我有一个要求,显示用户一个弹出窗口时,还有一分钟的会话到期时间。假设会话到期时间为5分钟,我需要显示一个弹出窗口“您的会话将在下一分钟到期”,如果要继续,请单击此处,否则单击取消。所以,若用户单击ok,时间将再次自动刷新,若取消,则无需执行任何操作。 为此,我在Layout中的共享文件夹中执行了类似的操作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
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确认是这里的最佳选择-如果会话确实过期,您可能还需要一些功能来采取行动(例如重定向到登录)。