///登录页面 Hashtable haol = (Hashtable)Application["olTable"]; if (haol == null) { haol = new Hashtable(); Application["olTable"] = haol; } else { HttpCookie cookie = new HttpCookie("ZInfo");//定义cookie对象以及名为Info的项 if (Request.Cookies["Info"] != null) { Request.Cookies["Info"].Values["UserHotleID"] = SessionInclude.UserBranchId; //cookie.Values.Add("UserHotleID", SessionInclude.UserBranchId); Response.AppendCookie(cookie);//确定写入cookie中 } else { cookie.Values.Add("UserHotleID", SessionInclude.UserBranchId); Response.AppendCookie(cookie);//确定写入cookie中 } //当前用户标识 Guid key = Guid.NewGuid(); Session["userKey"] = key; IDictionaryEnumerator list = haol.GetEnumerator(); ArrayList ls = new ArrayList(); while (list.MoveNext()) { if (list.Value.ToString() == SessionInclude.SessionId.Trim()) { ls.Add(list.Key); //haol.Remove(list.Key); } } int i = ls.Count - 1; while (i > -1) { Application.Lock(); haol.Remove(ls[i]); Application.UnLock(); i = i - 1; } Application.Lock(); haol.Add(key, SessionInclude.SessionId.Trim()); Application["olTable"] = haol; Application.UnLock(); }
///所有页面继承类 public class BasePage : System.Web.UI.Page { protected override void OnLoad(EventArgs e) { base.OnLoad(e); } override protected void OnInit(EventArgs e) { BasePageInitInfo(); } public void BasePageInitInfo() { try { Hashtable haol = (Hashtable)Application["olTable"]; if (haol == null) { haol = new Hashtable(); Application["olTable"] = haol; } else { if (Session["userKey"] != null) { //当前用户Key Guid key = new Guid(Session["userKey"].ToString()); IDictionaryEnumerator val = haol.GetEnumerator(); while (val.MoveNext()) { if (val.Value.ToString().Trim() == SessionInclude.SessionId.Trim()) { Guid currGuid = new Guid(val.Key.ToString()); if (!currGuid.Equals(key)) { Application.Lock(); haol.Remove(Session["userKey"].ToString()); Session["userKey"] = null; Application.UnLock(); Response.Write("<script>alert('您的帐号在别处登录,您被迫下线');window.parent.location='../Login.aspx';</script>"); break; } } } } else { //当前用户标识 Guid key = Guid.NewGuid(); Session["userKey"] = key; IDictionaryEnumerator list = haol.GetEnumerator(); ArrayList ls = new ArrayList(); while (list.MoveNext()) { if (list.Value.ToString() == SessionInclude.SessionId.Trim()) { ls.Add(list.Key); //haol.Remove(list.Key); } } int i = ls.Count - 1; while (i > -1) { Application.Lock(); haol.Remove(ls[i]); Application.UnLock(); i = i - 1; } Application.Lock(); haol.Add(key, SessionInclude.SessionId.Trim()); Application["olTable"] = haol; Application.UnLock(); } } } catch { } } }