2012-03-28 18 views
0

我已經統計了Web服務器的在線用戶數量。我創建了用戶名&分配給個人計算機的密碼,然後使用這個用戶名用戶可以訪問主頁&登錄後用戶我在數據表中添加用戶名,會話ID,IP地址。如果我用戶已經從另一臺計算機連接,則同一用戶從另一臺計算機訪問信息,然後用戶首先使用會話ID從會話中斷開已連接的當前計算機。那麼用戶可以自動禁用另一臺計算機功能,那麼用戶可以爲當前計算機啓動新的會話。如何從唯一sessionID中刪除會話?

如何從唯一sessionID中刪除會話&禁用了另一臺計算機用戶的所有功能?

+0

您不能使用Session for這是因爲會話僅限於客戶的請求 但是,您的問題是處理多個客戶端,因此會話似乎不適合這個原因。 一些數據庫存儲,檢索會在這裏工作.. – RohitWagh 2012-03-28 08:54:11

回答

0

我會試試這種方式: 在登錄時會生成一個隨機字符串,將其寫入會話變量並將其存儲在數據庫中,然後在ur頁面中比較這些值以驗證用戶訪問。這樣用戶只能登錄一次。

+0

你的英語很不好,你能試着解釋一下你的意思嗎?你的答覆沒有多大意義。你的問題也很難理解。 – brizz 2012-03-28 08:10:14

0

您可以使用此代碼:

Session.Remove("keyOfSession"); 
+0

如果我們用這個去除特定計算機的會話,那麼它會自動禁用網頁功能 – user847455 2012-03-28 08:06:52

+1

即時通訊非常確定他想殺死會話,而不是會話變量 – brizz 2012-03-28 08:08:34

0

例如,你可以在你的ApplicationInstance屬性的對象,如字典:

  • 重點將是用戶id
  • 值將是KeyValuePair列表,其中
    • KVP密鑰將是用戶IP
    • KVP值將是一個WeakReference的一個會話對象

在在session_start的結束,你在你的字典=>插入列表中的項目爲相應的用戶和IP拿着WeakReference的會話對象。 然後,您還End()所有其他非null,弱引用,此用戶和其他IP的會話對象(請注意,某些用戶通過可能會請求之間更改的動態代理訪問Internet)