我正在開發一個多用戶桌面應用程序。我需要找出一種方法,只允許一個用戶每次登錄一個用戶名。基本上,John不能從PC-A登錄到應用程序,然後運行到PC-B並登錄。我想到的是設置一個位標誌,表明用戶已經登錄,並且當從另一個位置嘗試時,它會建議用戶當前用戶名已經登錄。這將重複,直到John on PC-A退出系統或手動註銷。唯一的問題是如果應用程序崩潰,則不會調用註銷方法。建議?防止在桌面應用程序上同時登錄多個用戶
3
A
回答
1
調查MySQL的GET_LOCK()和RELEASE_LOCK()函數。
2
如果您不能依賴於正常退出應用程序或至少捕獲所有異常並進行適當處理,我認爲唯一的選擇是使用會話方法。基本上,當每個用戶登錄時,會建立一個新的會話,並且這個會話ID將被驗證以用於未來的任何呼叫。
通過這樣做,您可以允許用戶在嘗試登錄其他地方時終止現有的/打開的會話。如果他們嘗試從PC B登錄並且已經從PC A登錄 - 則只需將其置於提示中,如果他們選擇從PC B繼續,則PC A上的會話將被禁用。即使有人在PC A上積極使用應用程序,他們發出的下一個服務呼叫也應該在會話關閉時被拒絕。
+0
我會'想一想這一點,聽起來像它可能是要走的路線。感謝您的迴應。 –
相關問題
- 1. 防止同一用戶登錄多個用戶
- 2. 防止多個用戶在macOS上同時運行應用程序
- 3. 防止多個同時登錄
- 4. 桌面應用程序與Facebook登錄
- 5. 登錄Java桌面應用程序
- 6. 防止在Asp.Net MVC5 Razor應用程序中登錄多個帳戶
- 7. Cocoa登錄表可防止用戶退出應用程序
- 8. PHP - 如何防止用戶同時從多臺機器登錄?
- 9. Windows/Linux上的多用戶登錄和遠程桌面?
- 10. 防止多用戶登錄 - HttpSessionBindingListener
- 11. 登錄到桌面應用程序的電子郵件帳戶
- 12. 防止同時登錄多臺機器
- 13. 如何防止用戶未登錄時顯示一個頁面?
- 14. 防止多臺設備同時登錄到一個用戶帳戶
- 15. 如何防止同一用戶在不同的電腦上同時登錄
- 16. 使用Omnioauth登錄多個站點將同一用戶鏈接到Rails應用程序上的多個登錄
- 17. 多用戶應用程序在iPad上使用Touch ID登錄
- 18. 在哪裏用MVP登錄winforms桌面應用程序?
- 19. 如何防止同一用戶同時登錄Firebase?
- 20. 防止在用戶組中同時併發和最大登錄
- 21. 阻止登錄的用戶訪問登錄頁面asp.net mvc應用程序
- 22. 防止在Web應用程序中使用相同的用戶名和密碼進行多次登錄
- 23. 防止用戶登錄後返回登錄頁面jsp servlet
- 24. 解析&Swift - 防止同時登錄 - 解析安裝對象,當用戶從手機上卸載應用程序
- 25. Yii - 如何防止用戶在登錄後登錄登錄頁面
- 26. Json登錄多個用戶登錄在一個登錄頁面
- 27. 防止多個用戶在同一時間登錄同一臺機器上的網站在asp.net
- 28. 如何在JavaFX桌面應用程序登錄後保留用戶信息
- 29. 如何在用戶登錄到桌面後啓動WinForms應用程序?
- 30. 如何創建在用戶登錄後啓動的桌面應用程序?
看看創建一個Mutex ..它將允許只有一個實例是我會建議.. – MethodMan
你至少可以嘗試[抓住應用程序崩潰](http://stackoverflow.com/a/5762806/947171 )。沒有承諾,你可以優雅地處理它,但至少你有機會修復數據庫。 –
應用程序的服務器端是什麼樣的?每個客戶端實例是否直接連接,但僅限於MySQL?或者你有自己的服務器,反過來連接到MySQL? –