注册 登录
编程论坛 ASP.NET技术论坛

简单的在线用户类

belin2000 发布于 2006-05-11 01:23, 1998 次点击

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using pweb.data.OleDb;
using pweb.page;
using pweb.pagebase;
using pweb.user;

public class online : pweb_base
{
public online()
{
if (Session["sessionid"] == null)
{
Session["sessionid"] = mySessionID();
}
}
public void UpData()
{
DeleteUserOfTimeout();
douser();
}
/// <summary>
/// 删除超过Session时长的用户资料
/// </summary>
protected void DeleteUserOfTimeout()
{
int SessionTimeout=Session.Timeout;
pweb_data_OleDb pwebdata = new pweb_data_OleDb();
string sql = "delete * from online where astime<#" + DateTime.Now.AddMinutes(-SessionTimeout) + "#";
//Response.Write(sql);
pwebdata.executesql(sql);
}
/// <summary>
/// 返回当前用户的SessionID
/// </summary>
/// <returns></returns>
protected string mySessionID()
{
//Response.Write(Session.SessionID);
return Session.SessionID;

}
/// <summary>
/// 返回用户名
/// </summary>
/// <returns></returns>
protected string myUID()
{
pwebuserclass pwebuser=new pwebuserclass();
if (pwebuser.IsUserLogin())
{
return pwebuser.username;
}
else
{
return "游客";
}
}
/// <summary>
/// 判断sessesid是否存在数据表中
/// </summary>
/// <returns></returns>
protected bool checkSessionID()
{
string sql = "select * from online where Sessionid='" + Session["Sessionid"].ToString() + "'";
pweb_data_OleDb pwebdata = new pweb_data_OleDb();
if (pwebdata.retable(sql).Rows.Count > 0)
{
return true;
}
else
{
return false;
}
}
protected void douser()
{
string sql;
pweb_data_OleDb pwebdata = new pweb_data_OleDb();
if (checkSessionID())
{
sql = "update online set uid='" + myUID() + "', astime=#" + DateTime.Now + "# where sessionid='" + Session["Sessionid"].ToString() + "'";
pwebdata.executesql(sql);
}
else
{
sql = "insert into online (uid,sessionid) values('" + myUID() + "','" + Session["Sessionid"].ToString() + "')";
pwebdata.executesql(sql);
}
}
}


///本类使用a数据库
格式如下:
uid 文本 250
sessionid 文本 250
astimes 日期时间 默认值:Now()

使用示范:
online onlinuser = new online();
onlinuser.UpData();
pweb_data_OleDb pwebdata = new pweb_data_OleDb();
DataTable dt = pwebdata.retable("select uid from online");
foreach (DataRow dr in dt.Rows)
{
Response.Write(dr["uid"].ToString()+"<br>");
}

本类的数据查询和数据操作都已经写在 pweb.data.OleDb;
根据自己的需要做修改
本类用于.net 2.0 并只能用于Login登陆控件。

谢谢支持

14 回复
#2
小笨笨2006-05-11 09:34
写得不错,顶一个。
#3
adu5202006-05-12 02:04
不错呀
#4
梦幻情缘2006-05-12 17:50
给予支持!
#5
garyboy5202006-05-18 10:25
顶了,支持中~~~~~~~~~~~~~~~~~~~
#6
cityair2006-05-18 15:58

学习一下。

#7
jiangjj0303232006-07-07 18:07

学习!!!

#8
belin20002006-07-11 13:34

自己的东西还是要顶一下的

#9
飞鱼2006-07-26 16:02

确实是好东东啊!!

#10
yxbwcc2006-08-27 19:08
#11
mylover6242006-08-27 22:26
学习ing
#12
pmbdlw2006-10-31 11:52
dingzhonging
#13
hwlker2007-03-09 20:33

不错!

#14
lq73506842007-03-10 09:59
先收下了,虽然看不懂,不过慢慢研究.先谢了。
#15
lanye2007-06-20 18:41
using pweb.data.OleDb;
using pweb.page;
using pweb.pagebase;
using pweb.user;
pweb是自己定义的还是怎么做的,头一次见,不懂!!!!
1