本例完成的功能就是防止用戶重復登錄!若用戶已經登錄,則當其再次登錄時,彈出提示框後返回!
實現思路:
用戶登錄成功後,將用戶登錄信息存放到Hashtable類型的Application["Online"]裡面,其鍵值為SessionID,其Value值為用戶ID;當用戶注銷時,調用Session.Abandon;在Global.asax裡面的SessionEnd事件中,將用戶ID從Hashtable中刪除;在用戶訪問頁面時,察看Hashtable中是否有對應的用戶ID如果沒有則判斷用戶不在線(用戶不在線的原因可能是按了注銷按鈕、網頁超時等)
1、公用類中判斷用戶是否在線的函數(供用戶調用)
Code
1/**//// <summary>
2/// 判斷用戶strUserID是否包含在Hashtable h中
3/// </summary>
4/// <param name="strUserID"></param>
5/// <param name="h"></param>
6/// <returns></returns>
7public static bool AmIOnline(string strUserID, Hashtable h)
8{
9 if (strUserID == null)
10 return false;
11
12 //繼續判斷是否該用戶已經登陸
13 if (h == null)
14 return false;
15
16 //判斷哈希表中是否有該用戶
17 IDictionaryEnumerator e1 = h.GetEnumerator();
18 bool flag = false;
19 while (e1.MoveNext())
20 {
21 if (e1.Value.ToString().CompareTo(strUserID) == 0)
22 {
23 flag = true;
24 break;
25 }
26 }
27 return flag;
28}