簡體   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