2013-04-08 295 views
0

在我的SQL Server數據庫中,我有一個包含用戶的表。這個表有一個名爲logged_on的列,這個列有點真,也可能是假。當某人登錄該列時將爲true,否則爲false。如果某人在使用我的wpf應用程序時發生了任何事情,例如電源消失,應用程序無法註銷用戶,則此列將爲true,並且用戶將無法再次登錄,因爲應用程序會告訴該用戶他已經登錄。有什麼我可以做,以避免這種情況?在服務器端還是在應用程序中?在SQL Server 2008 R2中自動註銷

任何sugestions讚賞:)

+0

客戶端是否對數據庫或通過某個服務器層直接運行? (是的,我看到你提到服務器端,但不知道你是指SQL服務器還是別的什麼) – 2013-04-08 16:22:52

+2

爲什麼不簡單讓用戶再次默默登錄? – 2013-04-08 16:37:48

+2

這是什麼目標?您是否試圖限制併發登錄會話的數量,登錄的用戶數量或其他? – StingyJack 2013-04-08 16:59:02

回答

1

聽起來像是你需要改變方式一點點,也許跟蹤的最後一次互動日期/時間(每次WPF應用程序調用SQL時間)和執行會話超時限制來代替。除了* logged_on *位字段之外,您可以使用該DateTime自動註銷幾分鐘內未與服務器交互的任何人(如果DateTime過時,則始終將* logged_on *切換爲false)。

有沒有一個重要的原因,你不能丟棄舊的登錄在用戶再次登錄而不先登錄的情況下?

3

我想你會需要一個「LastActive」日期時間戳。然後運行一個計劃作業,其中顯示「如果您在X分鐘內處於非活動狀態,請更改logged_on標誌的狀態」。

您是否想確保只有一個登錄可以同時處於活動狀態?這是最終的遊戲嗎?