在global.asax里面实现记录访问该网站的所有人的IP地址?只要有人访问...

发布网友 发布时间:2024-10-23 20:51

我来回答

1个回答

热心网友 时间:2024-11-01 22:16

其实需要配合使用的,我帮你搜了一个答案,管用。以下讲解:

记录网站历史访问量,并可记录网站在线人数,实现此功能的神秘之处原来在于global.asax文件中

首先要明确两个对象application 和session,分别是全局变量控制与会话管理

历史访问量需要每次网站结束运行后载入数据库,下次网站运行时再次取出,而在线人数,则为即时统计

代码如下:

void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
DataAccess da = new DataAccess();
string sql = "select * from countpeo";
int count = Convert.ToInt32(da.SqlExecuteScalar(sql));

Application["total"] = count ; //总人数初始
Application["online"] = 0; //在线人数初始
da.ConClose();

}

void Session_Start(object sender, EventArgs e)
{
// 在新会话启动时运行的代码
Application.Lock(); //采用访问控制,防止并发处理
//网站被访问,访问总量与在线人数需同时加一
Application["total"] = (int)Application["total"] + 1;
Application["online"] = (int)Application["online"] + 1;
Application.UnLock();

}

void Session_End(object sender, EventArgs e)
{
// 在会话结束时运行的代码。
//访问结束,访问总量不变,在线人数减一
Application.Lock();
Application["online"] = (int)Application["online"] - 1;
Application.UnLock();

}

void Application_End(object sender, EventArgs e)
{
// 在应用程序关闭时运行的代码
DataAccess da1 = new DataAccess();
string sql1 = "update countpeo set num="+Application ["count"].ToString ();
bool judge=da1.SqlExecuteNonQuery(sql1);

}

最后在想要出现统计结果的页面添加相应的控件,加上如下代码即可实现此功能

protected void Page_Load(object sender, EventArgs e)
{
this.Label3.Text = Application["total"].ToString();
this.Label4.Text = Application["online"].ToString();
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com