asp.net 在线用户列表统计

简介: 在线人员统计,Global.asax:using System;using System.
在线人员统计,Global.asax:

using System;

using System.Collections;

using System.Configuration;

using System.Data;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.SessionState;

using System.Xml.Linq;

 

namespace CountPerson

{

    publicclass Global: System.Web.HttpApplication

    {

 

        protectedvoid Application_Start(objectsender, EventArgs e)

        {

            #region OnlineUsers

            try

            {

                DataTable userTable = newDataTable();

                userTable.Columns.Add("SessionID");

               userTable.Columns.Add("UserIP");

               userTable.Columns.Add("Browser");

               userTable.Columns.Add("OSName");

 

               userTable.AcceptChanges();

                Application.Lock();

                Application["OnlineUsers"] = userTable;

               Application.UnLock();

            }

            catch

            {

 

            }

            #endregion

        }

 

        protectedvoid Session_Start(objectsender, EventArgs e)

        {

            try

            {

                string sessionid = Session.SessionID;

                string userIP = Request.UserHostAddress;

                HttpBrowserCapabilities bc = Request.Browser;

                string osName = "win2000";

                //判断操作系统

                switch (bc.Platform)

                {

                    case "WinNT5.1":

                    case "WinXP":

                        osName = "Windows XP";

                        break;

                    case "WinNT 5.0":

                        osName = "Win2000";

                        break;

                    case "WinNT":

                        osName = "Win2003";

                        break;

                    default:

                        osName = bc.Platform;

                        break;

                }

                string browser = bc.Type;

                DataTable userTable = (DataTable)Application["OnlineUsers"];

                if (userTable == null)

                    return;

                DataRow[] curRow = userTable.Select("SessionID='" + sessionid + "'");

                if (curRow.Length == 0)

                {

                    DataRow row = userTable.NewRow();

                    row["SessionID"] = sessionid;

                    row["UserIP"] = userIP;

                    row["Browser"] = browser;

                    row["OSName"] = osName;

 

                   userTable.Rows.Add(row);

                   userTable.AcceptChanges();

 

                    Application.Lock();

                    Application["OnlineUsers"] = userTable;

                   Application.UnLock();

                }

            }

            catch

            {

            }

        }

 

        protectedvoid Application_BeginRequest(object sender, EventArgse)

        {

 

        }

 

        protectedvoid Application_AuthenticateRequest(object sender, EventArgse)

        {

 

        }

 

        protectedvoid Application_Error(objectsender, EventArgs e)

        {

 

        }

 

        protectedvoid Session_End(objectsender, EventArgs e)

        {

            HashtableonlineUserHashtable = (Hashtable)Application["OnlineUsers"];

           onlineUserHashtable.Remove(Request.UserHostAddress);

            try

            {

                string sessionid = Session.SessionID;

                DataTable userTable = (DataTable)Application["OnlineUsers"];

                if (userTable == null)

                    return;

                foreach (DataRowrow in userTable.Select("SessionID='" + sessionid + "'"))

                {

                   userTable.Rows.Remove(row);

                }

               userTable.AcceptChanges();

                Application.Lock();

                Application["OnlineUsers"]= userTable;

                Application.UnLock();

            }

            catch

            {

            }

        }

 

        protectedvoid Application_End(objectsender, EventArgs e)

        {

 

        }

    }

}

 

在页面中使用GridView绑定用户列表:

protected void Page_Load(object sender, EventArgse)

        {

            DataTableuserTable = null;

            try

            {

                userTable = (DataTable)Application["OnlineUsers"];

            }

            catch

            {

                Response.Write("获得内存在线数据失败");

            }

            if(userTable != null)

            {

                GridView1.DataSource= userTable;

               GridView1.DataBind();

            }

        }


相关文章
|
1月前
|
C#
一个.NET开源、轻量级的运行耗时统计库 - MethodTimer
一个.NET开源、轻量级的运行耗时统计库 - MethodTimer
|
7月前
|
SQL XML 开发框架
分享136个ASP计数统计源码,总有一款适合您
分享136个ASP计数统计源码,总有一款适合您
96 3
|
存储 C# 数据库
.NET开源的在Windows上统计软件使用时长和网站浏览时长工具 - Tai
.NET开源的在Windows上统计软件使用时长和网站浏览时长工具 - Tai
110 0
|
7月前
|
SQL 开发框架 .NET
ASP.NET WEB+EntityFramework数据持久化——考核练习库——1、用户管理系统(考点:查询列表、增加、删除)
ASP.NET WEB+EntityFramework数据持久化——考核练习库——1、用户管理系统(考点:查询列表、增加、删除)
124 0
|
7月前
|
前端开发 JavaScript 关系型数据库
.NET开源、强大的Web报表统计系统
.NET开源、强大的Web报表统计系统
163 0
1152人参与的.NET ORM框架使用情况统计投票结果
1152人参与的.NET ORM框架使用情况统计投票结果
|
开发框架 NoSQL .NET
ASP.NET Core微服务(六)——【redis命令详细列表3】
ASP.NET Core微服务(六)——【redis命令详细列表3】
242 0
ASP.NET Core微服务(六)——【redis命令详细列表3】
|
开发框架 NoSQL .NET
ASP.NET Core微服务(六)——【redis命令详细列表2】
ASP.NET Core微服务(六)——【redis命令详细列表2】
156 0
ASP.NET Core微服务(六)——【redis命令详细列表2】
|
开发框架 NoSQL .NET
ASP.NET Core微服务(六)——【redis命令详细列表1】
ASP.NET Core微服务(六)——【redis命令详细列表1】
212 0
ASP.NET Core微服务(六)——【redis命令详细列表1】