|
最近開發(fā)中涉及到一些使用IHttpModule和IHttpHandler,只是儲(chǔ)備不夠,抓緊查詢MSDN學(xué)習(xí)了一下,將學(xué)習(xí)點(diǎn)滴記錄一下。
一、IHttpModule
查看這個(gè)接口的代碼可以發(fā)現(xiàn),它是由兩個(gè)方法組成:
public interface IHttpModule{ void Dispose(); void Init(HttpApplication context); }
看到兩個(gè)方法及方法標(biāo)簽,就明白這個(gè)IHttpModule接口有什么作用了,Init方法中傳入了一個(gè)HttpApplication參數(shù),它提供對(duì) ASP.NET 應(yīng)用程序內(nèi)所有應(yīng)用程序?qū)ο蟮墓玫姆椒ā傩院褪录脑L問,包括了HttpApplication下的方法、屬性和事件的訪問。那么具體有那些呢?
包括了所有我們經(jīng)常會(huì)用到的一些對(duì)象,Application,Context,Event,Modules,Request,Response,Server,Session,Site,User,BeginRequest,EndRequest等等,其中Context中有個(gè)一個(gè)方法Context.RewritePath可以用來重寫URL的,也就是說只要你在App_code中添加一個(gè)繼承IHttpModule接口的類,并在webconfig中添加此Module后,這個(gè)類就可以處理全局的應(yīng)用程序所有的方法、屬性和事件了。
1.針對(duì)常用的操作做了一個(gè)測(cè)試:
應(yīng)用程序?qū)⑾蛎總€(gè)請(qǐng)求的頁(yè)面上輸出這個(gè)Module中的內(nèi)容。
2.針對(duì)URL重寫測(cè)試如下:
說明,當(dāng)有用戶請(qǐng)求頁(yè)面時(shí)如果請(qǐng)求路徑不包括custom則重寫URL,但是這個(gè)測(cè)試是失敗的,正在研究RewritePath這個(gè)方法的用法。
二、IHttpHandler
這個(gè)接口由一個(gè)屬性一個(gè)方法組成
public interface IHttpHandler{ bool IsReusable { get; } void ProcessRequest(HttpContext context); }
IsReusable獲取一個(gè)值,該值指示其他請(qǐng)求是否可以使用 System.Web.IHttpHandler 實(shí)例。
System.Web.HttpContext 對(duì)象,它提供對(duì)用于為 HTTP 請(qǐng)求提供服務(wù)的內(nèi)部服務(wù)器對(duì)象(如 Request、Response、Session 和 Server)的引用。
NET技術(shù):淺析IHttpModule和IHttpHandler,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。