介于安全考虑,今天客户突然想让页面如果长时间未操作就自动退出登录,网站是用asp.net开发的,这个看似简单的问题其实说难也不难.

页面长时间无操作自动退出登录 php30分钟无操作自动退出

主要是网站采用的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)】的全部内容了,欢迎留言评论进行交流!

赞(0) 踩(0)
发表我的评论

最新评论

  1. 暂无评论