您好,登錄后才能下訂單哦!
這篇文章主要介紹“ASP.NET的HTTP模塊和處理程序對話狀態是怎樣的”,在日常操作中,相信很多人在ASP.NET的HTTP模塊和處理程序對話狀態是怎樣的問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”ASP.NET的HTTP模塊和處理程序對話狀態是怎樣的”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
HTTP處理程序中的對話狀態
維護對話狀態是Web應用程序執行的最通常的事務。HTTP處理程序也需要訪問這些對話狀態。但是HTTP處理程序的默認設置是沒有激活對話狀態的。為了讀取和/或寫入狀態數據,需要HTTP處理程序實現下面的接口之一:
· IRequiresSessionState
· IReadOnlySessionState.
當HTTP處理程序需要讀寫對話數據的時候,它必須實現IRequiresSessionState接口。如果它只讀取對話數據,實現IReadOnlySessionState接口就可以了。
這兩個接口都是標記接口,并沒有包含任何方法。因此,如果你希望激活NewHandler處理程序的對話狀態,要像下面的代碼一樣聲明NewHandler類:
public class NewHandler : IHttpHandler, IRequiresSessionState
HTTP模塊
HTTP模塊是實現了System.Web.IhttpModule接口的.NET組件。這些組件通過在某些事件中注冊自身,把自己插入ASP.NET請求處理管道。當這些事件發生的時候,ASP.NET調用對請求有興趣的HTTP模塊,這樣該模塊就能處理請求了。
HTTP模塊實現了IhttpModule接口的下面一些方法:
方法名稱 | 描述 |
Init | 這個方法允許HTTP模塊向HttpApplication 對象中的事件注冊自己的事件處理程序。 |
Dispose | 這個方法給予HTTP模塊在對象被垃圾收集之前執行清理的機會。 |
HTTP模塊可以向System.Web.HttpApplication對象暴露的下面一些方法注冊:
事件名稱 | 描述 |
AcquireRequestState | 當ASP.NET運行時準備好接收當前HTTP請求的對話狀態的時候引發這個事件。 |
AuthenticateRequest | 當ASP.NET 運行時準備驗證用戶身份的時候引發這個事件。 |
AuthorizeRequest | 當ASP.NET運行時準備授權用戶訪問資源的時候引發這個事件。 |
BeginRequest | 當ASP.NET運行時接收到新的HTTP請求的時候引發這個事件。 |
Disposed | 當ASP.NET完成HTTP請求的處理過程時引發這個事件。 |
EndRequest | 把響應內容發送到客戶端之前引發這個事件。 |
Error | 在處理HTTP請求的過程中出現未處理異常的時候引發這個事件。 |
PostRequestHandlerExecute | 在HTTP處理程序結束執行的時候引發這個事件。 |
PreRequestHandlerExecute | 在ASP.NET開始執行HTTP請求的處理程序之前引發這個事件。在這個事件之后,ASP.NET 把該請求轉發給適當的HTTP處理程序。 |
PreSendRequestContent | 在ASP.NET把響應內容發送到客戶端之前引發這個事件。這個事件允許我們在內容到達客戶端之前改變響應內容。我們可以使用這個事件給頁面輸出添加用于所有頁面的內容。例如通用菜單、頭信息或腳信息。 |
PreSendRequestHeaders | 在ASP.NET把HTTP響應頭信息發送給客戶端之前引發這個事件。在頭信息到達客戶端之前,這個事件允許我們改變它的內容。我們可以使用這個事件在頭信息中添加cookie和自定義數據。 |
ReleaseRequestState | 當ASP.NET結束所搜有的請求處理程序執行的時候引發這個事件。 |
ResolveRequestCache | 我們引發這個事件來決定是否可以使用從輸出緩沖返回的內容來結束請求。這依賴于Web應用程序的輸出緩沖時怎樣設置的。 |
UpdateRequestCache | 當ASP.NET完成了當前的HTTP請求的處理,并且輸出內容已經準備好添加給輸出緩沖的時候,引發這個事件。這依賴于Web應用程序的輸出緩沖是如何設置的。 |
除了這些事件之外,我們還可以使用四個事件。我們可以通過實現Web應用程序的global.asax文件中一些方法來使用這些事件。
這些事件是:
· Application_OnStart
當***個請求到達Web應用程序的時候引發這個事件。
· Application_OnEnd
準備終止應用程序之前引發這個事件。
· Session_OnStart
用戶對話的***個請求引發這個事件。
· Session_OnEnd
放棄對話或者對話超期的時候引發這個事件。
到此,關于“ASP.NET的HTTP模塊和處理程序對話狀態是怎樣的”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。