介于安全考虑,今天客户突然想让页面如果长时间未操作就自动退出登录,网站是用asp.net开发的,这个看似简单的问题其实说难也不难.
主要是网站采用的sso登录,如果session过期则会跳转sso登录页面,而sso是第三方的,是以浏览器为生命周期的,如果没有访问sso退出页面,就会自动登录回来.
而一般asp.net只有设置session超时,不会自己访问退出页面,所以还是得在页面加额外的计时器进去以便超时访问sso退出页面.
一般首先想到的是设置session超时嘛,但这个只是超时,并不会自动退出,那咋办呢,只能在页面通过JavaScript来实现自动退出了.
思路就是通过监听页面的点击事件来判断是否超时,然后跳转到退出登录页面,不废话了,代码如下:
var lastOperationTime = new Date().getTime();
var opCurrTime = new Date().getTime();
//设置超时时间: 15分
var opTimeOut = 1000 * 60 * 15;
function autoLogout() {
//定时器 间隔10秒检测页面是否长时间无操作
setInterval(checkLogout, 10000);
$(document).click(function () {
//更新操作时间
lastOperationTime = new Date().getTime();
});
}
function checkLogout() {
opCurrTime = new Date().getTime();
//判断无操作超时
if (opCurrTime - lastOperationTime > opTimeOut) {
console.log("超时");
//访问退出页面
window.top.location = "/sso/logout.aspx";
}
}
$(function () {
//调用代码
autoLogout();
});
基本代码就是这样了,适用于asp.net core/php/java/python开发的页面哟~
以上就是【页面15分钟无操作自动退出登录(asp.net core/php/java/js/py)】的全部内容了,欢迎留言评论进行交流!