2013-06-21 353 views
0

在我的應用程序中,我不允許用戶以同一用戶多次登錄應用程序。每次他登錄到系統時,我都會更新他登錄的數據庫中的狀態,登出後他的狀態也會更新。我的問題是,如果由於任何原因會出現錯誤,並且應用程序崩潰,他將無法登錄。我的問題是,有什麼方法可以讓應用程序檢測用戶是否閒置了15分鐘並激活他的狀態。我正在編程我的應用程序在C#和我的數據庫是MySQL數據庫。請建議我該怎麼做。 謝謝空閒時間不活動檢測

+0

兩個建議:1)您可以創建一個登錄「過期」時間戳,設置爲初始登錄或任何後續活動後15分鐘。如果他們嘗試在時間戳後登錄,請讓他們。 2)你可以在崩潰後清理......當你的應用程序正常關閉時,在%appdata%(或某處)的.settings文件中設置一些標誌。如果應用程序啓動並看到它沒有正常退出,請讓他們再次登錄... – GojiraDeMonstah

回答

0

您可以將最後一次用戶請求的時間存儲在數據庫中,如果超過15分鐘,他就會空閒。

0

如果你想要一個更強大的解決方案,允許立即重新登錄,你可以在表中存儲CONNECTION_ID()的結果。當用戶正常註銷時,將其重新設置爲NULL。如果連接ID不是NULL,則可以使用SHOW PROCESSLIST來確定連接是否仍然存在。如果不是,應用程序崩潰,並且您可以允許登錄。當然,這取決於您的應用程序只與數據庫建立一個持久連接。