2015-03-13 50 views
1

我在我的MVC5應用程序中實現了ASP.net Identity 2.1.0身份驗證。我正在尋找一種方法,只允許每個用戶名/密碼組合一次連接。例如,如果有人使用用戶名A和密碼B連接,直到他們斷開連接,則任何嘗試連接爲A且密碼爲B的用戶都將被拒絕,並顯示一條消息,其中包含「有活動用戶使用該信息登錄! 。 我試過使用CookieAuthenticationProvider.OnValidateIdentityCookieAuthenticationProvider.OnResponseSignIn但我不知道如何檢測活動用戶的會話。ASP.NET身份,只允許服務器中的一個經過身份驗證的用戶

我找到a post類似的東西,但不是拒絕具有相同憑證的第一個連接,而是在密碼更改時使連接無效。

回答

0

我會通過每次用戶登錄時生成一個新的GUID並將其存儲在用戶的會話和身份驗證令牌中來解決問題。在每個請求上或以一定的時間間隔,您可以比較兩者,如果它們不匹配,則可以將用戶登出。

使用這種方法,當用戶從第二個瀏覽器/設備登錄時,您可以通過提示消息提示他們當前已在其他位置登錄,並且如果它們繼續,會話將被註銷。

相關問題