whosonhandler.cs

来自「asp.net技术内幕的书配源码」· CS 代码 · 共 45 行

CS
45
字号
using System.Web;
using System.Collections;

namespace WhosOn {
	public class WhosOnHandler :IHttpHandler  {
		public void ProcessRequest( HttpContext objContext ) {
			Queue colPageStats;
			string  strPath;
			//StatsEntry objStatsEntry;

			// get Page Path
			strPath = objContext.Request.Path;
			strPath = strPath.Substring( 0, strPath.LastIndexOf('.') - 1 );

			// Display the Stats
			colPageStats = (Queue)objContext.Cache["whoson_" + strPath];
			if ( colPageStats != null ) {
				objContext.Response.Write( "<table border=1 cellpadding=4>" );
				objContext.Response.Write( "<tr><td colspan=4 bgcolor=orange>" );
				objContext.Response.Write( "<b>Who//s On</b>" );
				objContext.Response.Write( "</td></tr>" );
				objContext.Response.Write( "<tr colspan=4 bgcolor=#eeeeee>" );
				objContext.Response.Write( "<th>Timestamp</th>" );
				objContext.Response.Write( "<th>Browser Type</th>" );
				objContext.Response.Write( "<th>Remote Address</th>" );
				objContext.Response.Write( "<th>Referrer</th>" );
				objContext.Response.Write( "</td></tr>" );
  
				foreach (StatsEntry objStatsEntry in colPageStats) {
					objContext.Response.Write( "<tr>" );
					objContext.Response.Write( "<td>" + objStatsEntry.TimeStamp + "&nbsp;</td>" )    ;
					objContext.Response.Write( "<td>" + objStatsEntry.BrowserType + "&nbsp;</td>" )    ;
					objContext.Response.Write( "<td>" + objStatsEntry.UserHostName + "&nbsp;</td>" )    ;
					objContext.Response.Write( "<td>" + objStatsEntry.Referrer + "&nbsp;</td>" )    ;
				} 
				objContext.Response.Write( "</table>" );
			} 
		}
  
		bool IHttpHandler.IsReusable {
			get	{return true;}
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?