繁体   English   中英

在ASP.NET Mvc 4中,每个用户仅限制一个会话

[英]Limit Only One Session Per User In ASP.NET Mvc 4

我正在开发一个Web应用程序,在该应用程序中,我想确保该网站一次仅允许每个用户一次登录。 当用户登录时我正在更新表列islogged = 1当注销时我正在更新islogged = 0但问题是用户会话超时或用户关闭浏览器时我无法捕获此事件。我正在使用sqlserver状态来存储会话,因此Session_End在此状态下未触发事件。 它仅在InProc State中起作用。 在浏览器关闭事件中,我也尝试过onunload事件。 但也会在关闭的标签页上触发此事件。 无法区分标签页关闭和浏览器关闭。 我只需要一个并发用户登录。 还有其他方法可以实现这一目标。

我正在使用此代码捕获浏览器关闭事件。

<body class="fixed-top" onclick="clicked=true;" onunload="CheckBrowser()">

    &lt;script type="text/javascript">
        var clicked = false;
       // var xmlHttp
    //    var browser = navigator.appName;

        function CheckBrowser() {
            debugger

            //  var browserClose = isUserClickedCloseButton();
            if (clicked == false) {
                $.ajax({
                    url: "@Url.Content("~/Account/LogOff")",
                    type: 'Post',
                    success: function (data) {

                    },
                    error: function () { alert("Error On Logut..."); }

                });
}

或者,您可以将存储会话ID与当前登录状态一起存储为DB或True。 当用户点击时,仅检查登录标志是否为真并采取所需的操作

暂无
暂无

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

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