剛剛實現了用session.sesssionid和application 來控制多用戶登陸。
主要代碼如下:
{
Application.Lock();
ArrayList LoginList = new ArrayList();
LoginList.Add("initalDate*");
Application["LoginList"] = LoginList;
Application.UnLock();
}
void Session_End(object sender, EventArgs e)
{
Application.Lock();
string userID = Session["UserID"].ToString();
string sessionID = Session.SessionID;
ArrayList userLogin = (ArrayList)Application["LoginList"];
if (userLogin.Contains(userID))
{
userLogin.Remove(userID);
}
if (userLogin.Contains(userID + "_" + sessionID))
{
userLogin.Remove(userID + "_" + sessionID);
}
Application.UnLock();
}
登陸界面中主要代碼如下:
ArrayList tempValue = new ArrayList();
Session["UserName"] = username;
Session["UserID"] = userID;
Session["type"] = usertype;
Application.Lock();
ArrayList userLogin = (ArrayList)Application["LoginList"];
if (userLogin.Contains(userID))
{
foreach (string listValue in userLogin)
{
if (listValue.Contains(userID + "_"))
{
tempValue.Add(listValue);
}
}
if (tempValue != null)
{
for (int i = 0; i < tempValue.Count; i++)
{
userLogin.Remove(tempValue[i].ToString());
}
}
userLogin.Add(userID + "_" + Session.SessionID);
}
else
{
userLogin.Add(userID);
userLogin.Add(userID + "_" + Session.SessionID);
}
Application.UnLock();
然後在各頁面中對session["userID"]和sessionID進行判斷並控制。