繁体中文
设为首页
加入收藏
当前位置:.Net技术首页 >> Asp.Net开发 >> 在线状态跟踪的思路

在线状态跟踪的思路

2007-09-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:public void initializeUserStatus() { HttpCookie cSession = Request.Cookies["session"]; string sql = ""; string others = ".........."; //代表罗列其他字段 if (Session["sessionid"]==null){ if (cSe...
关键字:跟踪 思路 状态 在线

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();

}

}

}

责任编辑:admin
相关文章