ASP.NET底層架構探索之ASP.NET管道
2006/12/1 12:48:57
HttpApplication觸發事件來通知你的程序有事發生,以此來負責請求流轉.這作為HttpApplication.Init()函數的一部分發生(用Reflector查看System.Web.HttpApplication.InitInternal()方法和HttpApplication.ResumeSteps()方法來了解更多詳情),連續設置并啟動一系列事件,包括執行所有的處理器(handler).這些事件處理器映射到global.asax中自動生成的哪些事件中,同時它們也映射到所有附加的HttpModule(它們本質上是HttpApplication對外發布的額外的事件接收器(sink)).

  HttpModule和HttpHandler兩者都是根據Web.config中對應的配置被動態載入并附加到事件處理鏈中.HttpModule實際上是事件處理器,附加到特殊的HttpApplication事件上,然而HttpHandler是用來處理”應用級請求處理”的終點.

  HttpModule和HttpHandler兩者都是在HttpApplication.Init()函數調用的一部分中被載入并附加到調用鏈上.圖6顯示了不同的事件,它們是何時發生的以及它們影響管道的哪一部分.

     
  圖6-事件在ASP.net http管道中流轉的過程.HttpApplication對象的事件驅動請求在管道中流轉.Http Module可以攔截這些事件并覆蓋或者擴展現有的功能.
  HttpContext, HttpModules 和 HttpHandlers

  httpApplication它本身對發送給應用程序的數據一無所知-它只是一個通過事件來通訊的消息對象.它觸發事件并通過HttpContext對象來向被調用函數傳遞消息.實際的當前請求的狀態數據由前面提到的HttpContext對象維護.它提供了所有請求專有的數據并從進入管道開始到結束一直跟隨請求.圖7顯示了ASP.NET管道中的流程.注意上下文對象(即HttpContext),這個從請求開始到結束一直都是你”朋友”的對象,可以在一個事件處理函數中保存信息并在以后的事件處理函數中取出.

  一旦管道被啟動,HttpApplication開始象圖六那樣一個個的觸發事件.每個事件處理器被觸發,如果事件被掛接,這些處理器將執行它們自己的任務.這個處理的主要任務是最終調用掛接到此特定請求的HttpHandler.處理器(handler)是ASP.NET請求的核心處理機制,通常也是所有應用程序級別的代碼被執行的地方.記住ASP.NET頁面和Web服務框架都是作為HttpHandler實現,這里也是處理請求的的核心之處.模塊(module)趨向于成為一個傳遞給處理器(handler)的上下文的預處理或后處理器.ASP.NET中典型的默認處理器包括預處理的認證,緩存以及后處理中各種不同的編碼機制.

  有很多關于HttpHandler和HttpModule的可用信息,所以為了保持這篇文章在一個合理的長度,我將提供一個關于處理器的概要介紹.

  HttpModule

  當請求在管道中傳遞時,HttpApplicaion對象中一系列的事件被觸發.我們已經看到這些事件在Global.asax中作為事件被發布.這種方法是特定于應用程序的,可能并不總是你想要的.如果你要建立一個通用的可用被插入任何Web應用程序的HttpApplication事件鉤子,你可用使用HttpModule,這是可復用的,不需要特定語應用程序代碼的,只需要web.config中的一個條目.

  模塊本質上是過濾器(fliter)-功能上類似于ISAPI過濾器,但是它工作在ASP.NET請求級別上.模塊允許為每個通過HttpApplication對象的請求掛接事件.這些模塊作為外部程序集中的類存貯.,在web.config文件中被配置,在應用程序啟動時被載入.通過實現特定的接口和方法,模塊被掛接到HttpApplication事件鏈上.多個HttpModule可用被掛接在相同的事件上,事件處理的順序取決于它們在Web.config中聲明的順序.下面是在Web.config中處理器定義.

    <configuration>
<system.web>
<httpModules>
<add name= "BasicAuthModule"
type="HttpHandlers.BasicAuth,WebStore" />
</httpModules>
</system.web>
</configuration>
  注意你需要指定完

下一頁
返回列表
返回首頁 主站蜘蛛池模板: 国内精品久久久久影院一蜜桃| 日韩免费高清一级毛片在线| 免费精品无码AV片在线观看| 黑人一个接一个上来糟蹋| 国产色丁香久久综合 | 精品国产免费一区二区三区| 国产区图片区小说区亚洲区| 2021国产成人午夜精品| 国内精品在线播放| www.欧美xxx| 绿巨人在线视频免费观看完整版 | 欧美高清在线精品一区| 免费高清在线影片一区| 色中色在线下载| 国产国产人精品视频69| 中文字幕第3页| 国产精品综合网| 99久久精品日本一区二区免费| 妖精视频在线观看免费| 中文字幕一区二区三区日韩精品| 日本免费一区尤物| 久久综合九色综合97伊人麻豆| 欧美丰满熟妇XXXX| 亚洲天堂电影网| 激情综合色五月丁香六月亚洲| 午夜成人无码福利免费视频| 色欲欲WWW成人网站| 国产成人av在线影院| 欧美一区二区三区综合色视频| 国产精品欧美亚洲韩国日本久久| 999精品视频在线观看热6| 好吊妞国产欧美日韩免费观看| 下载一个黄色录像| 日本不卡视频免费| 久久国产乱子伦精品免| 日韩在线一区二区三区免费视频| 亚洲a级在线观看| 欧美午夜视频在线观看| 亚洲性久久久影院| 欧美最猛黑人xxxx黑人猛交| 亚洲精品免费视频|