繁体   English   中英

如何使用JavaScript / jQuery同时限制多个用户登录

[英]How to restrict multiple user logins at same time using JavaScript / jQuery

我已经使用JavaScript,jQuery开发了ASP.NET MVC应用程序。

我已经实现了使用onbeforeunload / beforeunloadevent限制多个用户同时登录。

它工作正常,但有时在onbeforeunload / beforeunloadevent

var myEvent = window.attachEvent || window.addEventListener;
var chkevent = window.attachEvent ? 'onbeforeunload' : 'beforeunload'; /// make IE7, IE8 compitable

myEvent(chkevent, function (e) { // For >=IE7, Chrome, Firefox
    if (!validNavigation)
    {
        $.ajax({
            url: '@Url.Action("ClearSession", "Account")',
            type: 'Post',
            data: "",
            dataType: "json",
            success: function (data)
            {
                console.log("onbeforeunload Success")
            },
            error: function (data) {
                console.log("onbeforeunload Error")
            }
        });
    }

    return null;
});

AJAX - jQuery还有一个函数AJAX - jQuery被称为complete: function(){}; function检查天气request is running在浏览器上request is running相同的用户名和密码,就像这里

complete: function() {
        $(this).data('requestRunning', false);
    }

整个AJAX-jQuery实现在这里可以看到并相应地实现,我希望它对您有用

在这里编码

$('#do-login').click(function(e) {
    var me = $(this);
    e.preventDefault();

    if ( me.data('requestRunning') ) {
        return;
    }

    me.data('requestRunning', true);

    $.ajax({
        type: "POST",
        url: "/php/auth/login.php",
        data: $("#login-form").serialize(),
        success: function(msg) {
            //stuffs
        },
        complete: function() {
            me.data('requestRunning', false);
        }
    });      
}); 

看到这个me.data('requestRunning', false); 如果它将获得使用相同用户名和密码运行的任何请求,则returns false并取消登录。

有关更多帮助,请参见此处。链接重复,Ajax防止单击多次请求

这不是完美的解决方案,但是您可以像这样实现

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM