2011-02-05 117 views
4

我正在尋找一種方法來破壞特定用戶的ASP.net會員資格會話。我這樣做的原因是我想要刪除一個用戶的管理員。這工作正常,但如果用戶已經有一個活動會話,他仍然被標記爲「在線」,直到此會話死亡(我通過使用Current.User.Identity.IsAuthenticated每次驗證)。ASP.net會員身份強制用戶離線(作爲管理員)

我該如何根據授權的用戶來查殺會話?這樣一來,當我做Memberships.DeleteUser(用戶名),我也可以做Sessions.KillByUser(用戶名)

在此先感謝


我結束了以下他們的建議,並使用以下方法,任何人誰有同樣的問題: http://www.chillaxen.com/2011/02/asp-net-force-a-user-offline-as-admin-destroy-a-session-by-username/

+0

我相信如果你使用DeleteUser,它會註銷用戶好,但是這篇文章不同意那個http://stackoverflow.com/questions/1909234/log-out-asp-net-user-through- sql – 2011-02-05 10:47:36

+0

保羅,我只是測試它。它沒。每次用戶點擊頁面時我都可以檢查數據庫,但這並不理想。我寧願能夠銷燬會話,然後每次我想檢查用戶是否在線時都強制調用我的數據庫(殺死會話點) – 2011-02-05 10:49:16

回答

1

如何添加一個HTTP模塊可攔截PostAuthorizeRequest事件:檢查用戶的憑據對要‘消滅’標識的全局列表。如果有匹配,請殺死用戶會話。

+0

並不完全像我想要的那樣乾淨,但那會起作用。謝謝! – 2011-02-05 12:01:06

0

正如Jakob所建議的那樣或者您可以在Global.asax中嘗試此... 檢查登錄用戶是否位於「要脫機的用戶列表」中,然後通過表單身份驗證或刪除cookie來註銷用戶。