asp.net 線上使用者列表統計
線上人員統計,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();
}
}
相關文章
- [轉載]Asp.Net線上使用者列表的開發匯總ASP.NET
- ASP.NET MVC線上人數統計ASP.NETMVC
- 【RickTsuei】寫一個簡單的ASP.NET Web應用程式線上使用者列表控制元件ASP.NETWeb控制元件
- 用ASP.NET設計高效郵件列表ASP.NET
- Laravel中介軟體統計使用者線上時長Laravel
- ASP.NET系統使用者許可權設計ASP.NET
- 一個海量線上使用者即時通訊系統(IM)的完整設計
- 在SpringBoot中使用Redis的zset統計線上使用者資訊Spring BootRedis
- 自定義開發odoo14的統計線上使用者人數Odoo
- 系統使用者數、併發使用者數與線上使用者數的區別及計算
- ASP.NET - SqlSugar ORM框架 更新列表ASP.NETSqlSugarORM框架
- Asp.Net 學習資源列表ASP.NET
- 系統設計面試完整列表面試
- 線上電影系統設計
- asp.net集合與列表小筆記ASP.NET筆記
- 著名 Emacs 使用者列表Mac
- asp.net常規頁生命週期階段列表和事件列表ASP.NET事件
- 線上教育系統開發中,tableview列表分割槽的實現方式View
- springboot線上人數統計Spring Boot
- java統計當前線上數 (轉)Java
- Jsp統計線上人數和線上註冊人數JS
- Asp.net利用Treeview實現樹形列表ASP.NETView
- Python統計列表元素出現次數Python
- 線上直播系統原始碼,實現搜尋後介面顯示商品列表效果原始碼
- Servlet監聽器統計線上人數Servlet
- Windows 快速統計檔案列表中檔案大小Windows
- Oracle審計列表Oracle
- 線上消費行為統計與分析系統設計和實現
- 線上人數統計功能怎麼實現?
- 【Linux系統程式設計】Linux訊號列表Linux程式設計
- asp.net 使用者角色管理ASP.NET
- redis設計統計使用者訪問量Redis
- Asp.net實現線上壓縮與解壓ASP.NET
- 統計《ASP.Net特供視訊教程》總長度ASP.NET
- abc221D 統計線上遊戲人數遊戲
- Java 程式設計知識列表與系統架構演化Java程式設計架構
- 線上直播系統原始碼,使用者登入時獲取到使用者已有的賬號資訊原始碼
- 程式設計師做自己的產品 “線上客服系統” 之:種子使用者的重要性程式設計師