项目中的使用:
新建——项目——web应用程序
(1)、新建一个类文件(.cs文件),继承IHttpModule接口,命名空间为:using System.Web
public void Dispose()
{
throw new NotImplementedException();
}
public void Init(HttpApplication context)
{
context.BeginRequest += application_BeginRequest;
context.EndRequest += endrequest;
}
private void endrequest(object sender, EventArgs e)
{
HttpApplication context = sender as HttpApplication;
context.Response.Write("end");
}
private void application_BeginRequest(object sender, EventArgs e)
{
HttpApplication context = sender as HttpApplication;
context.Response.Write("start");
}
(2)、编辑Web.config
此处具体可以借鉴:http://blog.csdn.net/eit520/article/details/37310335
经典模式下的配置:
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
<httpModules>
<add name="ss" type="WebApplication2.Class1"/>//此处为命名空间.类名
</httpModules>
</system.web>
集成模式下的配置:
<system.webServer>
..
<modulesrunAllManagedModulesForAllRequests="true">
<addname="IkDentalHttpModule"type="WebApplication2.Class1"/>
</modules>
..
</system.webServer>
(3)、当上面两步配置好了其实就可以了,新建一个页面,只要是发生请求就会触发管道层事件,即(HttpModule).
运行结果如下:
网站使用HttpModule的方法:
(1)、新建一个类库,写一个类文件,跟上述类文件一样
using System;
using System.Web;
namespace HttpModules
{
public class Class1 : IHttpModule
{
public void Dispose()
{
throw new NotImplementedException();
}
public void Init(HttpApplication context)
{
context.BeginRequest += application_BeginRequest;
context.EndRequest += endrequest;
}
private void endrequest(object sender, EventArgs e)
{
HttpApplication context = sender as HttpApplication;
context.Response.Write("end");
}
private void application_BeginRequest(object sender, EventArgs e)
{
HttpApplication context = sender as HttpApplication;
context.Response.Write("start");
}
}
}
(2)、生成DLL文件
(3)、新建web程序,将DLL文件添加到Bin目录下,不用进行引用。
(4)、配置web.config
经典模式下:
<system.web>
<modules>
<add name="ww" type=" HttpModules.Class1"/>//此处为DLL名称.类名
</modules
</system.web>
集成模式下:
<system.webServer>
<modules>
<add name="ww" type="HttpModules.Class1"/>//此处为DLL名称.类名
</modules>
</system.webServer>
(5)、截止到目前web的配置已完成,添加页面
运行结果: