本文為機器翻譯文章。如需檢視英文版,請選取 [原文] 核取方塊。您也可以將滑鼠指標移到文字上,即可在快顯視窗顯示英文原文。
譯文
原文

HttpApplication 類別

 

定義 ASP.NET 應用程式中所有應用程式物件通用的方法、屬性和事件。 這個類別是使用者在 Global.asax 檔案中為應用程式定義的基底類別。

命名空間:   System.Web
組件:  System.Web (於 System.Web.dll)

System.Object
  System.Web.HttpApplication

public class HttpApplication : IComponent, IDisposable, IHttpAsyncHandler, 
	IHttpHandler

名稱描述
System_CAPS_pubmethodHttpApplication()

初始化 HttpApplication 類別的新執行個體。

名稱描述
System_CAPS_pubpropertyApplication

取得應用程式的目前狀態。

System_CAPS_pubpropertyContext

取得目前要求的 HTTP 特定資訊。

System_CAPS_protpropertyEvents

取得事件的清單,處理所有的應用程式事件處理常式委派。

System_CAPS_pubpropertyModules

取得目前的應用程式的模組集合。

System_CAPS_pubpropertyRequest

取得目前要求的內建函式的要求物件。

System_CAPS_pubpropertyResponse

取得目前要求的內建函式的回應物件。

System_CAPS_pubpropertyServer

取得目前要求的內建函式的伺服器物件。

System_CAPS_pubpropertySession

取得可存取工作階段資料的內建函式的工作階段物件。

System_CAPS_pubpropertySite

取得或設定的站台介面 IComponent 實作。

System_CAPS_pubpropertyUser

取得目前要求的內建使用者物件。

名稱描述
System_CAPS_pubmethodAddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler)

將指定 AcquireRequestState 集合非同步事件 AcquireRequestState 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

將指定 AcquireRequestState 集合非同步事件 AcquireRequestState 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler)

將指定 AuthenticateRequest 集合非同步事件 AuthenticateRequest 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object)

將指定 AuthenticateRequest 集合非同步事件 AuthenticateRequest 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler)

將指定 AuthorizeRequest 集合非同步事件 AuthorizeRequest 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object)

將指定 AuthorizeRequest 集合非同步事件 AuthorizeRequest 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnBeginRequestAsync(BeginEventHandler, EndEventHandler)

將指定 BeginRequest 集合非同步事件 BeginRequest 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnBeginRequestAsync(BeginEventHandler, EndEventHandler, Object)

將指定 BeginRequest 集合非同步事件 BeginRequest 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnEndRequestAsync(BeginEventHandler, EndEventHandler)

將指定 EndRequest 集合非同步事件 EndRequest 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnEndRequestAsync(BeginEventHandler, EndEventHandler, Object)

將指定 EndRequest 集合非同步事件 EndRequest 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnLogRequestAsync(BeginEventHandler, EndEventHandler)

將指定 LogRequest 集合非同步事件 LogRequest 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnLogRequestAsync(BeginEventHandler, EndEventHandler, Object)

將指定 LogRequest 集合非同步事件 LogRequest 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler)

將指定 MapRequestHandler 集合非同步事件 MapRequestHandler 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object)

將指定 MapRequestHandler 集合非同步事件 MapRequestHandler 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler)

將指定 PostAcquireRequestState 集合非同步事件 PostAcquireRequestState 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

將指定 PostAcquireRequestState 集合非同步事件 PostAcquireRequestState 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler)

將指定 PostAuthenticateRequest 集合非同步事件 PostAuthenticateRequest 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object)

將指定 PostAuthorizeRequest 集合非同步事件 PostAuthorizeRequest 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler)

將指定 PostAuthorizeRequest 集合非同步事件 PostAuthorizeRequest 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object)

將指定 PostAuthorizeRequest 非同步集合 PostAuthorizeRequest 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler)

將指定 PostLogRequest 集合非同步事件 PostLogRequest 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler, Object)

將指定 PostLogRequest 集合非同步事件 PostLogRequest 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler)

將指定 PostMapRequestHandler 集合非同步事件 PostMapRequestHandler 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object)

將指定 PostMapRequestHandler 集合非同步事件 PostMapRequestHandler 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler)

將指定 PostReleaseRequestState 集合非同步事件 PostReleaseRequestState 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

將指定 PostReleaseRequestState 集合非同步事件 PostReleaseRequestState 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler)

將指定 PostRequestHandlerExecute 集合非同步事件 PostRequestHandlerExecute 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object)

將指定 PostRequestHandlerExecute 集合非同步事件 PostRequestHandlerExecute 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler)

將指定 PostResolveRequestCache 集合非同步事件 PostResolveRequestCache 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

將指定 PostResolveRequestCache 集合非同步事件 PostResolveRequestCache 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler)

將指定 PostUpdateRequestCache 集合非同步事件 PostUpdateRequestCache 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

將指定 PostUpdateRequestCache 集合非同步事件 PostUpdateRequestCache 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler)

將指定 PreRequestHandlerExecute 集合非同步事件 PreRequestHandlerExecute 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object)

將指定 PreRequestHandlerExecute 集合非同步事件 PreRequestHandlerExecute 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler)

將指定 ReleaseRequestState 集合非同步事件 ReleaseRequestState 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

將指定 ReleaseRequestState 集合非同步事件 ReleaseRequestState 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler)

將指定 ResolveRequestCache 集合非同步事件處理常式 ResolveRequestCache 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

將指定 ResolveRequestCache 集合非同步事件處理常式 ResolveRequestCache 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler)

將指定 UpdateRequestCache 集合非同步事件 UpdateRequestCache 目前要求的事件處理常式。

System_CAPS_pubmethodAddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

將指定 UpdateRequestCache 集合非同步事件 UpdateRequestCache 目前要求的事件處理常式。

System_CAPS_pubmethodCompleteRequest()

會導致略過所有事件,並在 HTTP 篩選管線執行鏈結,並且直接執行的 ASP.NET EndRequest 事件。

System_CAPS_pubmethodDispose()

處置 HttpApplication 執行個體。

System_CAPS_pubmethodEquals(Object)

判斷指定的物件是否等於目前的物件。(繼承自 Object。)

System_CAPS_protmethodFinalize()

在記憶體回收開始前,允許物件嘗試釋放資源,並執行其他清除作業。(繼承自 Object。)

System_CAPS_pubmethodGetHashCode()

做為預設雜湊函式。(繼承自 Object。)

System_CAPS_pubmethodGetOutputCacheProviderName(HttpContext)

取得網站的預設輸出快取提供者所設定的名稱。

System_CAPS_pubmethodGetType()

取得目前執行個體的 Type(繼承自 Object。)

System_CAPS_pubmethodGetVaryByCustomString(HttpContext, String)

提供整個應用程式實作的 VaryByCustom 屬性。

System_CAPS_pubmethodInit()

已加入所有的事件處理常式模組之後,請執行自訂的初始化程式碼。

System_CAPS_protmethodMemberwiseClone()

建立目前 Object 的淺層複製。(繼承自 Object。)

System_CAPS_pubmethodSystem_CAPS_staticRegisterModule(Type)

註冊應用程式模組。

System_CAPS_pubmethodToString()

傳回代表目前物件的字串。(繼承自 Object。)

名稱描述
System_CAPS_pubeventAcquireRequestState

發生於 ASP.NET 取得與目前的要求相關聯的目前狀態 (例如,工作階段狀態)。

System_CAPS_pubeventAuthenticateRequest

發生於安全性模組已建立的使用者身分識別。

System_CAPS_pubeventAuthorizeRequest

發生於安全性模組已驗證使用者的授權。

System_CAPS_pubeventBeginRequest

當執行的 HTTP 管線鏈結中的第一個事件為 ASP.NET 回應的要求。

System_CAPS_pubeventDisposed

發生於處置應用程式。

System_CAPS_pubeventEndRequest

當執行的 HTTP 管線鏈結中的最後一個事件相同 ASP.NET 回應的要求。

System_CAPS_pubeventError

發生於時擲回未處理的例外狀況。

System_CAPS_pubeventLogRequest

ASP.NET 會執行目前要求的任何記錄之前發生。

System_CAPS_pubeventMapRequestHandler

此 API 支援 產品 基礎結構,而且不適合直接從程式碼使用。 發生於選取處理常式來回應要求。

System_CAPS_pubeventPostAcquireRequestState

取得目前要求相關聯的要求狀態 (例如,工作階段狀態) 時發生。

System_CAPS_pubeventPostAuthenticateRequest

發生於安全性模組已建立的使用者身分識別。

System_CAPS_pubeventPostAuthorizeRequest

發生於目前要求的使用者已獲授權。

System_CAPS_pubeventPostLogRequest

發生於 ASP.NET 完成處理所有的事件處理常式 LogRequest 事件。

System_CAPS_pubeventPostMapRequestHandler

ASP.NET 擁有適當的事件處理常式對應目前的要求時發生。

System_CAPS_pubeventPostReleaseRequestState

發生於 ASP.NET 完成執行事件處理常式和儲存資料的要求狀態的所有要求。

System_CAPS_pubeventPostRequestHandlerExecute

ASP.NET 事件處理常式 (例如網頁或 XML Web service) 執行完成時發生。

System_CAPS_pubeventPostResolveRequestCache

ASP.NET 會略過目前的事件處理常式的執行,且可讓快取模組來處理從快取的要求時發生。

System_CAPS_pubeventPostUpdateRequestCache

發生於 ASP.NET 完成更新快取模組和儲存用來處理從快取的後續要求的回應。

System_CAPS_pubeventPreRequestHandlerExecute

ASP.NET 會開始執行 (例如網頁或 XML Web service) 的事件處理常式之前發生。

System_CAPS_pubeventPreSendRequestContent

ASP.NET 會將內容傳送至用戶端之前發生。

System_CAPS_pubeventPreSendRequestHeaders

ASP.NET 會將 HTTP 標頭傳送給用戶端之前發生。

System_CAPS_pubeventReleaseRequestState

ASP.NET 會結束執行時,所有要求事件處理常式之後發生。 這個事件會導致儲存目前的狀態資料的模組狀態。

System_CAPS_pubeventRequestCompleted

發生於已發行與要求相關聯的受管理的物件。

System_CAPS_pubeventResolveRequestCache

發生於 ASP.NET 完成授權事件,讓快取模組服務要求,然後從快取,並略過此事件處理常式 (例如網頁或 XML Web service) 的執行。

System_CAPS_pubeventUpdateRequestCache

當 ASP.NET 完成執行的事件處理常式,讓快取模組儲存會用來處理從快取的後續要求的回應。

名稱描述
System_CAPS_pubinterfaceSystem_CAPS_privmethodIHttpAsyncHandler.BeginProcessRequest(HttpContext, AsyncCallback, Object)

啟始非同步呼叫的 HTTP 事件處理常式。

System_CAPS_pubinterfaceSystem_CAPS_privmethodIHttpAsyncHandler.EndProcessRequest(IAsyncResult)

提供非同步處理 End 方法程序完成時。

System_CAPS_pubinterfaceSystem_CAPS_privmethodIHttpHandler.ProcessRequest(HttpContext)

可讓您實作自訂 HTTP 處理常式所處理的 HTTP Web 要求 IHttpHandler 介面。

System_CAPS_pubinterfaceSystem_CAPS_privpropertyIHttpHandler.IsReusable

取得 Boolean 值,指出是否可以使用另一個要求 IHttpHandler 物件。

執行個體 HttpApplication 不是由使用者直接在 ASP.NET 基礎結構中,建立類別。 一個執行個體 HttpApplication 類別用來處理許多要求,在其存留期間。 不過,可以一次處理一個要求。 因此,成員變數可以用來儲存每個要求的資料。

應用程式會引發事件,可處理的自訂模組實作 IHttpModule 介面或是透過 Global.asax 中所定義的事件處理常式程式碼檔案。 實作的自訂模組 IHttpModule 介面可以放在 App_Code 資料夾中或在 DLL 的 Bin 資料夾中。

HttpApplication .NET Framework 3.5 版中引進。 如需詳細資訊,請參閱.NET Framework 版本和相依性

System_CAPS_note注意

當執行 IIS 7.0 整合模式中,在 App_Code 資料夾或 Bin 資料夾中的自訂模組會套用至要求管線中的所有要求。 Global.asax 檔案中的事件處理常式程式碼僅適用於會對應至 ASP.NET 處理常式的要求。

在應用程式事件會依照下列順序引發︰

  1. BeginRequest

  2. AuthenticateRequest

  3. PostAuthenticateRequest

  4. AuthorizeRequest

  5. PostAuthorizeRequest

  6. ResolveRequestCache

  7. PostResolveRequestCache

    之後 PostResolveRequestCache 事件之前 PostMapRequestHandler 事件建立事件處理常式 (這是對應於要求 URL 的網頁)。 當伺服器執行 IIS 7.0 整合模式中,而是在最小.NET Framework 3.0 版, MapRequestHandler 就會引發事件。 當伺服器執行 IIS 7.0 傳統模式或 IIS 的先前版本中時,無法處理此事件。

  8. PostMapRequestHandler

  9. AcquireRequestState

  10. PostAcquireRequestState

  11. PreRequestHandlerExecute

    事件處理常式會執行。

  12. PostRequestHandlerExecute

  13. ReleaseRequestState

  14. PostReleaseRequestState

    之後 PostReleaseRequestState 就會引發事件,任何現有的回應篩選條件會篩選輸出。

  15. UpdateRequestCache

  16. PostUpdateRequestCache

  17. LogRequest.

    支援這個事件是在 IIS 7.0 整合模式和最低.NET Framework 3.0

  18. PostLogRequest

    此事件是支援的 IIS 7.0 整合模式下,至少在.NET Framework 3.0

  19. EndRequest

下列兩個範例示範如何使用 HttpApplication 類別和其相關事件。 第一個範例示範如何建立自訂 HTTP 模組,並將事件連接到它。 第二個範例示範如何修改 Web.config 檔案。

下列範例示範如何建立自訂的 HTTP 模組,以及連接 AcquireRequestState HTTP 模組的事件。 HTTP 模組攔截每個 Web 應用程式資源,因此您就可以篩選用戶端要求的要求。 任何透過 HTTP 模組,以訂閱 HttpApplication 事件必須實作 IHttpModule 介面。

using System;
using System.Web;

namespace Samples.AspNet.CS
{
    public class CustomHTTPModule : IHttpModule
    {
        public CustomHTTPModule()
        {
            // Class constructor.
        }

        // Classes that inherit IHttpModule 
        // must implement the Init and Dispose methods.
        public void Init(HttpApplication app)
        {

            app.AcquireRequestState += new EventHandler(app_AcquireRequestState);
			app.PostAcquireRequestState += new EventHandler(app_PostAcquireRequestState);
		}

        public void Dispose()
        {
            // Add code to clean up the
            // instance variables of a module.
        }

        // Define a custom AcquireRequestState event handler.
        public void app_AcquireRequestState(object o, EventArgs ea)
        {
            HttpApplication httpApp = (HttpApplication)o;
            HttpContext ctx = HttpContext.Current;
            ctx.Response.Write(" Executing AcquireRequestState ");
        }

        // Define a custom PostAcquireRequestState event handler.
		public void app_PostAcquireRequestState(object o, EventArgs ea)
		{
			HttpApplication httpApp = (HttpApplication)o;
			HttpContext ctx = HttpContext.Current;
			ctx.Response.Write(" Executing PostAcquireRequestState ");
		}

	}
}

自訂 HTTP 模組中的事件發生之前,您必須修改 Web.config 檔案中的組態設定,會通知 ASP.NET HTTP 模組。 下列範例示範中的適當的組態設定 httpModules Web.config 檔案區段。 下列設定適用於 IIS 7.0 傳統模式和早期版本的 IIS。

<configuration>
  <system.web>
    <httpModules>
      <add type="Samples.AspNet.CS.CustomHTTPModule"
        name="CustomHttpModule" />
      </httpModules>
  </system.web>
</configuration>

下列設定適用於 IIS 7.0 整合模式。

<configuration>
  <system.webServer>
    <modules>
      <add type="Samples.AspNet.CS.CustomHTTPModule"
        name="CustomHttpModule" />
      </modules>
  </system.webServer>
</configuration>

.NET Framework
自 1.1 起供應

此類型的任何 public static (在 Visual Basic 中 共用 在 Visual Basic 中) 成員皆為安全執行緒。不保證任何執行個體成員為安全執行緒。

回到頁首
顯示: