|
Globl.asax文件:
void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
Hashtable ht = new Hashtable();
Application["SessionIDs"] = ht;
}
void Application_End(object sender, EventArgs e)
{
// 在应用程序关闭时运行的代码
////Hashtable ht = (Hashtable)Application["SessionIDs"];
////ht.Clear();
}
void Application_Error(object sender, EventArgs e)
{
// 在出现未处理的错误时运行的代码
}
void Session_Start(object sender, EventArgs e)
{
// 在新会话启动时运行的代码
}
void Session_End(object sender, EventArgs e)
{
// 在会话结束时运行的代码。
// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
// InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer
// 或 SQLServer,则不会引发该事件。
Hashtable ht = (Hashtable)Application["SessionIDs"];
Reg.UpdateStar(Convert.ToInt32(ht[Session.SessionID]));//此方法修改数据库中的状态
if (Session.SessionID.ToString() != null && Session.SessionID.ToString() != null)
{
ht.Remove(Session.SessionID);
}
}
login.aspx
登录时:
Hashtable ht = (Hashtable)Application["SessionIDs"];//用sessionid写入hashtable关联userid
ht.Add(Session.SessionID, userid);//添加到hashtable key value
Reg.UpdateStarOnline(userid);//此方法改变数据库中的状态。 |