随便写一个类继承IHttpModule
实现IHttpModule中的两个方法
Init()
Dispose()
public void Init(HttpApplication context)
{
//throw new NotImplementedException();
//恰好在 ASP.NET 开始执行事件处理程序(例如,某页或某个 XML Web services)前发生。
context.PreRequestHandlerExecute += new EventHandler(Context_PreRequestHandlerExecute);
//在 ASP.NET 事件处理程序(例如,某页或某个 XML Web service)执行完毕时发生。
context.PostRequestHandlerExecute += new EventHandler(Context_PostRequestHandlerExecute); }
//在 ASP.NET 事件处理程序(例如,某页或某个 XML Web service)执行完毕时发生。
//页面加载完成后触发
private void Context_PostRequestHandlerExecute(object sender, EventArgs e)
{
//throw new NotImplementedException();
}
//恰好在 ASP.NET 开始执行事件处理程序(例如,某页或某个 XML Web services)前发生。
//页面加载前触发
private void Context_PreRequestHandlerExecute(object sender, EventArgs e)
{
//获取到当前请求上下文
HttpContext context = ((HttpApplication)sender).Context;
var request = context.Request;
//浏览器
string browser = request.Browser.Browser;
if (string.IsNullOrEmpty(browser))
{
browser = "/home/index";
}
//绝对路径
string url = request.Url.AbsolutePath;
string host = request.Url.Host; }
然后还需要到配置文件中配置一下
在<system.webServer>这个节点下
<modules runAllManagedModulesForAllRequests="true" >
<add name="HttpModule111" type="MVCWebCount.Common.HttpModule111" />
</modules>
或者
<modules runAllManagedModulesForAllRequests="true" >
<add name="HttpModule111" type="MVCWebCount.Common.HttpModule111,MVCWebCount" />
</modules>
name就是自己随便写的那个类
type是这个类所在的地址,后半截是他所在的程序集