HttpApplication 事件执行顺序
之前做了一段ASP.NET,但都是用微軟的控件在實現,并沒有了解這些東西,事隔多年后,現在再做發現不能僅為功能而做功能,同事也很慚愧,對ASP.NET原理一直沒弄明白,補習一下知識,在學習HttpModule時可以訂閱這些事件,所以在此溫習一下,并了解一下在一個應用程序域中的執行順序:
?
簡介:
???? HttpApplication類的實例(Global繼承自該類)是在ASP.NET基礎上構建的,不是由我們自己構建的,當然用HttpModule的好處也在于可以將功能獨立到其它類庫中,HttpApplication類在一個生命周期中用于處理多個請求,但一次只能處理一個請求。這樣,成員變量才能存儲針對某個請求的數據。
?
經測試:若有多個模塊都訂閱了以下事件,執行的順序按Web.config中HttpModul節點的配置順序執行。
?
請求執行的順序:
BeginRequest(在 ASP.NET 響應請求時作為 HTTP 執行管線鏈中的第一個事件發生)
AuthenticateRequest?(當安全模塊已建立用戶標識時發生。注:AuthenticateRequest?事件發出信號表示配置的身份驗證機制已對當前請求進行了身份驗證。預訂?AuthenticateRequest?事件可確保在處理附加的模塊或事件處理程序之前對請求進行身份驗證。)
PostAuthenticateRequest?(注意:該事件在 .NET Framework 2.0 版中是新增的。 當安全模塊已建立用戶標識時發生。PostAuthenticateRequest?事件在AuthenticateRequest?事件發生之后引發。預訂?PostAuthenticateRequest?事件的功能可以訪問由?PostAuthenticateRequest?處理的任何數據。)
AuthorizeRequest?(當安全模塊已驗證用戶授權時發生。AuthorizeRequest?事件發出信號表示 ASP.NET 已對當前請求進行了授權。預訂AuthorizeRequest?事件可確保在處理附加的模塊或事件處理程序之前對請求進行身份驗證和授權。)
PostAuthorizeRequest?(.NET 2.0里新增的事件。在當前請求的用戶已獲授權時發生。PostAuthorizeRequest?事件發出信號表示 ASP.NET 已對當前請求進行了授權。預訂PostAuthorizeRequest?事件可確保在處理附加的模塊或處理程序之前對請求進行身份驗證和授權。)
ResolveRequestCache?(當 ASP.NET 完成授權事件以使緩存模塊從緩存中為請求提供服務時發生,從而跳過事件處理程序(例如某個頁或 XML Web services)的執行。)
PostResolveRequestCache?(在 ASP.NET 跳過當前事件處理程序的執行并允許緩存模塊滿足來自緩存的請求時發生。)在?PostResolveRequestCache事件之后、PostMapRequestHandler?事件之前創建一個事件處理程序(對應于請求 URL 的頁)。
PostMapRequestHandler
AcquireRequestState
PostAcquireRequestState
PreRequestHandlerExecute(執行事件處理程序。)
PostRequestHandlerExecute
ReleaseRequestState
PostReleaseRequestState?(在PostReleaseRequestState?事件之后,響應篩選器(如果有)將對輸出進行篩選。)
UpdateRequestCache
PostUpdateRequestCache
EndRequest
轉載于:https://www.cnblogs.com/Alexantao/articles/3274740.html
總結
以上是生活随笔為你收集整理的HttpApplication 事件执行顺序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “万能数据库查询分析器” 5.03发布,
- 下一篇: JavaScript学习笔记(四十四)