【发布时间】:2018-06-23 05:26:59
【问题描述】:
我正在尝试使用 WebForms 在会话超时时进行自动重定向。我搜索但找到了设置预定义限制的代码。但是当我们按下键或移动指针等时,它们永远不会重置。我通过在每次鼠标移动和按键时调用 ajax 来使用 ajax 重置会话超时,但这会影响其他脚本的性能,使其变慢等。我已经尝试过这个清楚和这项工作的干净代码也应用了一些 ajax,但从未成功。 https://code.msdn.microsoft.com/Auto-redirect-to-login-e1782b2f
这是我的服务,可在每次鼠标移动或按键时获取会话过期时间。
[WebMethod (EnableSession=true)]
public static string GETExpireTime()
{
DateTime date = DateTime.Now;
int sessionTimeout = HttpContext.Current.Session.Timeout;
DateTime dateExpress = date.AddMinutes(sessionTimeout);
return dateExpress.ToString("u", DateTimeFormatInfo.InvariantInfo).Replace("Z", "");
}
这是我在 jquery 中重置它的方式。
$(document).ready(function () {
$(document).keyup(function () {
var data = {};
setCookie("express", generalAjax(data, 'GETExpireTime').d);
});
$('*').mouseenter(function () {
var data = {};
setCookie("express", generalAjax(data, 'GETExpireTime').d);
});
});
如果有另一种方法可以完美地做到这一点,请帮助我,因为所有代码都设置了预定义的时间并在该时间间隔后强制注销但我需要在鼠标移动或按键时重置。谢谢
【问题讨论】:
标签: c# jquery asp.net webforms