2009-12-26 104 views
2

我擁有一個遊戲網站。有時我需要暫停用戶出於不同的原因。他們作弊,或者他們是不良用戶的不良用戶。暫停用戶後,他們無法再登錄我的網站,直到暫停期限到期。從管理會話中終止ASP .NET用戶會話

但是,暫停用戶後,他仍然可以訪問該網站,可以與其他用戶聊天,可以創建論壇帖子,可以做每一個,這是因爲他仍然登錄在網站上。我對此無能爲力,大部分時間我需要重新啓動IIS才能擺脫不良用戶。

有什麼我可以做我的ASP .NET會話殺死用戶會話嗎?我反對使用SQL來存儲用戶會話變量。

我更喜歡在每個用戶請求上檢查一個ASP .NET會話/應用程序變量,並且如果該變量包含暫停用戶的ID,立即註銷他。

回答

5

您無法以您想要的方式訪問會話。你可以做的是在應用程序緩存中保存一個被暫停的用戶列表。在每個頁面請求和每次登錄嘗試中,都可以在列表上執行查找,以查看您的當前用戶是否被暫停。如果他是,那麼你可以將他註銷並放棄他的會話,或者阻止新的登錄。

+0

登錄已被阻止。問題是在從管理面板暫停它們之後立即註銷它們(如果它們已經登錄)。 Cache的變量對我來說聽起來很棒。這是因爲緩存是線程安全的。 – 2009-12-26 15:33:06

+0

這是處理這個問題的正確方法。你必須檢查每個帖子,看看他們是否仍然是一個有效的用戶,如果沒有......將他們踢出去。 – 2009-12-26 15:44:35