HttpModule做用是 IIS將接收到的請求分發給相應的ISAPI處理前,先截獲該請求。web
經過這個咱們能夠完成不少額外功能。app
自定義IHttpModule的例子:asp.net
經過自定義HttpModule,頁面加載前劫持請求,向頁面輸入文字「MyModule」。網站
1.在asp.net站點下添加App_Code文件夾,而後添加MyModule類。spa
using System; using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; using System.Web; namespace WebApplication4 { public class MyModule:IHttpModule { public void Dispose() { } public void Init(HttpApplication context) { //context.BeginRequest是開始處理HTTP管線請求時發生的事件 context.BeginRequest += new EventHandler(context_BeginRequest); //context.Error是當處理過程當中發生異常時產生的事件 //context.Error += new EventHandler(context_Error); } void context_BeginRequest(object sender, EventArgs e) { HttpApplication application = (HttpApplication)sender; HttpContext context = application.Context; HttpResponse response = context.Response; response.Write("MyModule"); } } }
2.配置WebConfig。註冊自定義IHttpModule.net
<?xml version="1.0" encoding="utf-8"?> <!-- 有關如何配置 ASP.NET 應用程序的詳細信息,請訪問 http://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <system.web> <compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5" /> </system.web> <system.webServer> <modules> <add name="MyModule" type="WebApplication4.MyModule,WebApplication4"/> </modules> </system.webServer> </configuration>
type值爲DLL命名空間
3.運行網站,查看效果
4.可能遇到的錯誤:
請將MyModule.cs 文件生成操做設置爲:編譯。