簡體   English   中英

如何防止用戶從多個位置或同一台PC上的不同瀏覽器登錄

[英]How to prevent user to login from multiple location or from different browser in same pc

我正在創建一個用戶無法嘗試多次登錄的應用程序。 如果特定用戶登錄,我的數據庫標志值將設置為1 ,這意味着沒有其他具有相同用戶名和密碼的成員可以登錄。

如果用戶注銷我的數據庫標志值設置為0 這一切都運行良好但現在我有一個不同的問題,即當用戶突然關閉瀏覽器而沒有注銷頁面或會話超時然后自動數據庫標志值應設置為0 現在我不知道該怎么做。 請給我任何解決方案。

在您的Global.asax文件中,您具有Session_OnEnd()

public void Session_OnEnd()
{
    // Set flag to 0
}

如果您的sessionState設置為INPROC (這是默認設置),這將沒關系,如果您已將其手動調整為StateServerSQL Server則此事件將被忽略。

當瀏覽器關閉窗口時,您可以在JavaScript中使用onbeforeunload

window.onbeforeunload = function(e) {
  // call an Ajax function to reset the state.
};

只需在數據庫中創建一個isloggedin列

例如:

USERNAME | PASSWORD | isloggedin | logintimestamp

    user | pass     | 0          | 3/9/2013 23:59:59

並在用戶登錄時和登錄時將其設置為1.使用ajax更新數據庫中的當前時間...

如果這不能使定時器函數根據時間戳檢查登錄值http://dev.mysql.com/doc/refman/5.1/en/events.html

這是教程: http : //www.sitepoint.com/how-to-create-mysql-events/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM