it should work, although it will not be accurate if the user closes the browser or leave you without logging out http://www.asp101.com/resources/active_users.aspalso take a look atActive User Count Without Global.asa
http://www.aspfree.com/print/1392,1/print.aspxthey are for ASP, but the idea is same
http://www.aspfree.com/print/1392,1/print.aspxthey are for ASP, but the idea is same
解决方案 »
- cs文件里添加换行问题(实在不知道怎么弄了拜托大家了)
- LinkButton的CommandName疑惑
- 靠,MagicAjax也太TMD的好用了吧,用起来超简单
- 求sql分页语句
- 邮件发送问题撒 没分了 下次补上 谢谢大家了
- asp.net(vb)中,怎样在listbox中生成横向的滚动条
- SmartNavigation="true"时怎样才能在 button下执行javascript代码?
- 删除行按钮怎么写?
- 如何在后台代码中使用客户端脚本产生的值,或者反过来使用?例如:
- 怎样把一个16位的INT数指定位设置为0或1?
- 发现一个错误
- 在自定义控件上DataGrid编辑功能不起作用?直接在ASP.NET页面上演示例子正常.
<%@ Page Language="c#" debug="true" %>
<html>
<head>
<SCRIPT LANGUAGE="c#" RUNAT="server">
private void Page_Load(object sender, System.EventArgs e)
{
Visitors.Text = "本站当前有: <b>" + Application["user_sessions"].ToString() + "" + "</b> 位访问者 !";
}
<title>在线用户</title>
</head>
<body>
<asp:label id="visitors" runat="server" /><br>
</body>
</html> 可以看出,以上的程序特别简单,就是调用Application。当然,我们不必要专门设计一个页面来显示在线用户数量,在网站的任何页面,我们都可以直接调用Application("user_sessions").ToString()来显示当前用户数量。 二、global.asax文件实现 global.asax文件的作用我们自不必说,现在,我们直接来看统计当前在线用户数量如何实现:
<script language="c#" runat="Server">
protected void Application_Start(Object sender, EventArgs e)
{
Application["user_sessions"] = 0;
}
protected void Session_Start(Object sender, EventArgs e)
{
Application.Lock();
Application["user_sessions"] = (int)Application["user_sessions"] + 1;
Application.Unlock();
}
protected void Session_End(Object sender, EventArgs e)
{
Application.Lock();
Application["user_sessions"] = (int)Application["user_sessions"] - 1;
Application.Unlock();
}
</script> 以上代码很容易理解,当网站开始服务的时候(Application开始的时候),程序设置Application["user_sessions"]为零,然后,当用户进入网站(Session开始的时候)的时候,锁定Application,然后,将application("user_sessions")加一,用户退出网站的时候,application("user_sessions")减一。这样,就很巧妙的实现了在线用户的统计。
后台SQLSERVER的话,用一个job间隔几分钟,删除到期的在线用户信息。在asp.net页面中,定时刷新,延长在线用户到期时间。
呵呵
我知道的两种方法都被说出来了
就是
application["user"]
和在global.asax中的
Application_Start