首先應該知道的是ASP.NET 請求處理過程是基於管道模型的,這個管道模型是由多個HttpModule和HttpHandler組成,ASP.NET 把http請求依次傳遞給管道中各個HttpModule,最終被HttpHandler處理,處理完成後,再次通過管道中的HTTP模塊,把結果返回給客戶端。咱們能夠在每一個HttpModule中均可以干預請求的處理過程。服務器
httpmodule介紹cookie
httpmodule主要做用是向httpApplication對象中註冊自定義事件,能夠是受權驗證等等ui
1.全部httpmodule都是實現了System.Web.IhttpModule接口對象
2.重寫方法主要有兩個:接口
(1)Init 方法:系統初始化的時候自動調用,這個方法容許HTTP模塊向HttpApplication 對象中的事件註冊本身的事件處理程序。
(2)Dispose方法: 這個方法給予HTTP模塊在對象被垃圾收集以前執行清理的機會。此方法通常無需編寫代碼。事件
3.容許註冊的事件有如下這些:資源
4.自定義的httpmodule要使用必須在Web.Conofig中註冊,註冊代碼以下it
<httpModules>
<add name="TestModule" type="命名空間.類名"></add>
</httpModules> io
httphandler介紹編譯
httphandler主要做用是HTTP請求的處理中心,真正地對客戶端請求的服務器頁面作出編譯和執行,並將處理事後的信息附加在HTTP請求信息流中再次返回到HttpModule中
1.全部httphandler都是實現了IHttpHandler接口聲明
2.HttpHandler與HttpModule不一樣,一旦定義了本身的HttpHandler類,那麼它對系統的HttpHandler的關係將是「覆蓋」關係
3.必須在Web.Config配置文件中註冊,註冊代碼以下
<httpHandlers>
<add verb="*" path="*" type="命名空間.類名"></add>
</httpHandlers>
4.在ProcessRequest方法中實現本身的業務邏輯