Asp.Net MVC 的19個管道事件
httpApplication調(diào)用ProcessRequest方法欺矫,內(nèi)部執(zhí)行19個管道事件仙辟,如下:
BeginRequest 開始處理請求
AuthenticateRequest 授權(quán)驗證請求開始涨缚,獲取用戶授權(quán)信息
PostAuthenticateRequest 獲取成功
AunthorizeRequest 授權(quán)服猪,一般用來檢查用戶是否獲得權(quán)限
PostAuthorizeRequest 獲得授權(quán)
ResolveRequestCache 獲取頁面緩存結(jié)果(如果沒有則執(zhí)行)
PostResolveRequestCache 已緩存
PostMapRequestHandler 創(chuàng)建頁面對象
AcquireRequestState 獲取Session --先判斷當(dāng)前頁面是否實現(xiàn)了IRequiresSessionState接口饼拍,如果實現(xiàn)了彬犯,就從瀏覽器發(fā)來的請求報文中獲取SessionId,并到服務(wù)器的Session池中獲得對應(yīng)的Session對象向楼,最后賦值給HttpContext的Session屬性。
PostAcquireRequestState 獲得Session
PreRequestHandlerExecute 準(zhǔn)備執(zhí)行頁面對象谐区,執(zhí)行頁面的ProcessRequest方法(1.aspx,1.ashx)湖蜕。請求如果是1.aspx就會執(zhí)行頁面的聲明周期
PostRequestHandlerExecute 執(zhí)行完頁面對象了,
ReleaseRequestState 已釋放請求狀態(tài)
UpdateRequestCache 更新緩存
PsotUpdateRequestCache 已更新緩存
LogRequest 日志記錄
PsotLogRequest 已完成日志
EndRequest 完成