public void initializeUserStatus()
{
HttpCookie cSession = Request.Cookies["session"];
string sql = "";
string others = ".........."; //代表罗列其他字段
if (Session["sessionid"]==null){
if (cSession==null){
cSession = new HttpCookie("session");
cSession.Values["sessionid"] = Session.SessionID;
cSession.Expires = DateTime.Now.AddMinutes(20);
Response.Cookies.Add(cSession);
Session["sessionid"] = Session.SessionID;
sql = "insert into online (sessionid,others)values('" + Session.SessionID + "','" + others + "')";
} else {
Session["sessionid"] = cSession.Values["sessionid"];
sql = "update online set others = '" + others + "' where sessionid = '" + cSession.Values["sessionid"] + "'";
cSession.Expires = DateTime.Now.AddMinutes(20);
Response.Cookies.Add(cSession);
}
} else {
sql = "update online set others = '" + others + "' where sessionid = '" + Session["sessionid"].ToString() + "'";
cSession.Expires = DateTime.Now.AddMinutes(20);
Response.Cookies.Add(cSession);
}
try {
//用户删除cookie的操作会引起错误
//假定conn对象已经建立
OleDbCommand cmd = new OleDbCommand(sql,conn);
cmd.ExecuteNonQuery();
}
catch {
try {
cmd.CommandText = "delete from online where sessionid = '" + Session["sessionid"].ToString() + "'";
cmd.ExecuteNonQuery();
Session.Remove("sessionid");
cSession.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(cSession);
}
finally {
Response.Write("用户状态跟踪失败,请返回重试。");
conn.Close();
Response.End();
}
}
}

