///登录页面
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
{
}
}
}
文章转自:http://www.cnblogs.com/elves/p/4044947.html