HttpApplication クラス

定義

ASP.NET アプリケーション内のすべてのアプリケーション オブジェクトに共通するメソッド、プロパティ、およびイベントを定義します。 このクラスは、Global.asax ファイルのユーザーによって定義されるアプリケーションの基本クラスです。

public ref class HttpApplication : IDisposable, System::ComponentModel::IComponent, System::Web::IHttpAsyncHandler
public class HttpApplication : IDisposable, System.ComponentModel.IComponent, System.Web.IHttpAsyncHandler
type HttpApplication = class
    interface IHttpAsyncHandler
    interface IHttpHandler
    interface IComponent
    interface IDisposable
type HttpApplication = class
    interface IComponent
    interface IDisposable
    interface IHttpAsyncHandler
    interface IHttpHandler
Public Class HttpApplication
Implements IComponent, IDisposable, IHttpAsyncHandler
継承
HttpApplication
実装

次の 2 つの例は、 HttpApplication クラスとそのイベントを使用する方法を示しています。 最初の例では、カスタム HTTP モジュールを作成し、それにイベントを接続する方法を示します。 2 番目の例では、Web.config ファイルを変更する方法を示します。

次の例では、カスタム HTTP モジュールを作成し、 AcquireRequestState イベントを HTTP モジュールに接続する方法を示します。 HTTP モジュールは Web アプリケーション リソースに対する各要求をインターセプトするため、クライアント要求をフィルター処理できます。 HttpApplication イベントをサブスクライブする HTTP モジュールは、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 ");
        }
    }
}
Imports System.Web

Namespace Samples.AspNet.VB
    Public Class CustomHTTPModule
        Implements IHttpModule

        Public Sub New()

            ' Class constructor.

        End Sub


        ' Classes that inherit IHttpModule 
        ' must implement the Init and Dispose methods.
        Public Sub Init(ByVal app As HttpApplication) Implements IHttpModule.Init

            AddHandler app.AcquireRequestState, AddressOf app_AcquireRequestState
            AddHandler app.PostAcquireRequestState, AddressOf app_PostAcquireRequestState

        End Sub


        Public Sub Dispose() Implements IHttpModule.Dispose

            ' Add code to clean up the
            ' instance variables of a module.

        End Sub


        ' Define a custom AcquireRequestState event handler.
        Public Sub app_AcquireRequestState(ByVal o As Object, ByVal ea As EventArgs)

            Dim httpApp As HttpApplication = CType(o, HttpApplication)
            Dim ctx As HttpContext = HttpContext.Current
            ctx.Response.Write(" Executing AcquireRequestState ")

        End Sub

        ' Define a custom PostAcquireRequestState event handler.
        Public Sub app_PostAcquireRequestState(ByVal o As Object, ByVal ea As EventArgs)

            Dim httpApp As HttpApplication = CType(o, HttpApplication)
            Dim ctx As HttpContext = HttpContext.Current
            ctx.Response.Write(" Executing PostAcquireRequestState ")

        End Sub

    End Class

End Namespace

カスタム HTTP モジュールのイベントが発生する前に、Web.config ファイルの構成設定を変更して、HTTP モジュールについて ASP.NET に通知する必要があります。 次の例は、Web.config ファイルの httpModules セクションの適切な構成設定を示しています。 次の設定は、IIS 7.0 クラシック モードと以前のバージョンの IIS に適用されます。

<configuration>
  <system.web>
    <httpModules>
      <add type="Samples.AspNet.CS.CustomHTTPModule"
        name="CustomHttpModule" />
      </httpModules>
  </system.web>
</configuration>
<configuration>
  <system.web>
    <httpModules>
      <add type="Samples.AspNet.VB.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>
<configuration>
  <system.webServer>
    <modules>
      <add type="Samples.AspNet.VB.CustomHTTPModule"
        name="CustomHttpModule" />
      <modules>
  </system.webServer>
</configuration>

注釈

HttpApplication クラスのインスタンスは、ユーザーが直接作成するのではなく、ASP.NET インフラストラクチャに作成されます。 HttpApplication クラスの 1 つのインスタンスは、有効期間内の多くの要求を処理するために使用されます。 ただし、一度に処理できる要求は 1 つだけです。 したがって、メンバー変数を使用して要求ごとのデータを格納できます。

アプリケーションは、 IHttpModule インターフェイスを実装するカスタム モジュールまたは Global.asax ファイルで定義されているイベント ハンドラー コードによって処理できるイベントを発生させます。 IHttpModule インターフェイスを実装するカスタム モジュールは、App_Code フォルダーまたは Bin フォルダー内の DLL に配置できます。

HttpApplication は、.NET Framework バージョン 3.5 で導入されています。 詳細については、「 バージョンと依存関係」を参照してください。

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()

HttpApplication クラスの新しいインスタンスを初期化します。

プロパティ

名前 説明
Application

アプリケーションの現在の状態を取得します。

Context

現在の要求に関する HTTP 固有の情報を取得します。

Events

すべてのアプリケーション イベントを処理するイベント ハンドラー デリゲートの一覧を取得します。

Modules

現在のアプリケーションのモジュールのコレクションを取得します。

Request

現在の要求の組み込み要求オブジェクトを取得します。

Response

現在の要求の組み込み応答オブジェクトを取得します。

Server

現在の要求の組み込みサーバー オブジェクトを取得します。

Session

セッション データへのアクセスを提供する組み込みセッション オブジェクトを取得します。

Site

IComponent実装のサイト インターフェイスを取得または設定します。

User

現在の要求の組み込みユーザー オブジェクトを取得します。

メソッド

名前 説明
AddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

指定した AcquireRequestState イベントを、現在の要求の非同期 AcquireRequestState イベント ハンドラーのコレクションに追加します。

AddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler)

指定した AcquireRequestState イベントを、現在の要求の非同期 AcquireRequestState イベント ハンドラーのコレクションに追加します。

AddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object)

指定した AuthenticateRequest イベントを、現在の要求の非同期 AuthenticateRequest イベント ハンドラーのコレクションに追加します。

AddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler)

指定した AuthenticateRequest イベントを、現在の要求の非同期 AuthenticateRequest イベント ハンドラーのコレクションに追加します。

AddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object)

指定した AuthorizeRequest イベントを、現在の要求の非同期 AuthorizeRequest イベント ハンドラーのコレクションに追加します。

AddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler)

指定した AuthorizeRequest イベントを、現在の要求の非同期 AuthorizeRequest イベント ハンドラーのコレクションに追加します。

AddOnBeginRequestAsync(BeginEventHandler, EndEventHandler, Object)

指定した BeginRequest イベントを、現在の要求の非同期 BeginRequest イベント ハンドラーのコレクションに追加します。

AddOnBeginRequestAsync(BeginEventHandler, EndEventHandler)

指定した BeginRequest イベントを、現在の要求の非同期 BeginRequest イベント ハンドラーのコレクションに追加します。

AddOnEndRequestAsync(BeginEventHandler, EndEventHandler, Object)

指定した EndRequest イベントを、現在の要求の非同期 EndRequest イベント ハンドラーのコレクションに追加します。

AddOnEndRequestAsync(BeginEventHandler, EndEventHandler)

指定した EndRequest イベントを、現在の要求の非同期 EndRequest イベント ハンドラーのコレクションに追加します。

AddOnLogRequestAsync(BeginEventHandler, EndEventHandler, Object)

指定した LogRequest イベントを、現在の要求の非同期 LogRequest イベント ハンドラーのコレクションに追加します。

AddOnLogRequestAsync(BeginEventHandler, EndEventHandler)

指定した LogRequest イベントを、現在の要求の非同期 LogRequest イベント ハンドラーのコレクションに追加します。

AddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object)

指定した MapRequestHandler イベントを、現在の要求の非同期 MapRequestHandler イベント ハンドラーのコレクションに追加します。

AddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler)

指定した MapRequestHandler イベントを、現在の要求の非同期 MapRequestHandler イベント ハンドラーのコレクションに追加します。

AddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

指定した PostAcquireRequestState イベントを、現在の要求の非同期 PostAcquireRequestState イベント ハンドラーのコレクションに追加します。

AddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler)

指定した PostAcquireRequestState イベントを、現在の要求の非同期 PostAcquireRequestState イベント ハンドラーのコレクションに追加します。

AddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object)

指定した PostAuthorizeRequest イベントを、現在の要求の非同期 PostAuthorizeRequest イベント ハンドラーのコレクションに追加します。

AddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler)

指定した PostAuthenticateRequest イベントを、現在の要求の非同期 PostAuthenticateRequest イベント ハンドラーのコレクションに追加します。

AddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object)

指定した PostAuthorizeRequest を、現在の要求の非同期 PostAuthorizeRequest イベント ハンドラーのコレクションに追加します。

AddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler)

指定した PostAuthorizeRequest イベントを、現在の要求の非同期 PostAuthorizeRequest イベント ハンドラーのコレクションに追加します。

AddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler, Object)

指定した PostLogRequest イベントを、現在の要求の非同期 PostLogRequest イベント ハンドラーのコレクションに追加します。

AddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler)

指定した PostLogRequest イベントを、現在の要求の非同期 PostLogRequest イベント ハンドラーのコレクションに追加します。

AddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object)

指定した PostMapRequestHandler イベントを、現在の要求の非同期 PostMapRequestHandler イベント ハンドラーのコレクションに追加します。

AddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler)

指定した PostMapRequestHandler イベントを、現在の要求の非同期 PostMapRequestHandler イベント ハンドラーのコレクションに追加します。

AddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

指定した PostReleaseRequestState イベントを、現在の要求の非同期 PostReleaseRequestState イベント ハンドラーのコレクションに追加します。

AddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler)

指定した PostReleaseRequestState イベントを、現在の要求の非同期 PostReleaseRequestState イベント ハンドラーのコレクションに追加します。

AddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object)

指定した PostRequestHandlerExecute イベントを、現在の要求の非同期 PostRequestHandlerExecute イベント ハンドラーのコレクションに追加します。

AddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler)

指定した PostRequestHandlerExecute イベントを、現在の要求の非同期 PostRequestHandlerExecute イベント ハンドラーのコレクションに追加します。

AddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

指定した PostResolveRequestCache イベントを、現在の要求の非同期 PostResolveRequestCache イベント ハンドラーのコレクションに追加します。

AddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler)

指定した PostResolveRequestCache イベントを、現在の要求の非同期 PostResolveRequestCache イベント ハンドラーのコレクションに追加します。

AddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

指定した PostUpdateRequestCache イベントを、現在の要求の非同期 PostUpdateRequestCache イベント ハンドラーのコレクションに追加します。

AddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler)

指定した PostUpdateRequestCache イベントを、現在の要求の非同期 PostUpdateRequestCache イベント ハンドラーのコレクションに追加します。

AddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object)

指定した PreRequestHandlerExecute イベントを、現在の要求の非同期 PreRequestHandlerExecute イベント ハンドラーのコレクションに追加します。

AddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler)

指定した PreRequestHandlerExecute イベントを、現在の要求の非同期 PreRequestHandlerExecute イベント ハンドラーのコレクションに追加します。

AddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

指定した ReleaseRequestState イベントを、現在の要求の非同期 ReleaseRequestState イベント ハンドラーのコレクションに追加します。

AddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler)

指定した ReleaseRequestState イベントを、現在の要求の非同期 ReleaseRequestState イベント ハンドラーのコレクションに追加します。

AddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

指定した ResolveRequestCache イベント ハンドラーを、現在の要求の非同期 ResolveRequestCache イベント ハンドラーのコレクションに追加します。

AddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler)

指定した ResolveRequestCache イベント ハンドラーを、現在の要求の非同期 ResolveRequestCache イベント ハンドラーのコレクションに追加します。

AddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

指定した UpdateRequestCache イベントを、現在の要求の非同期 UpdateRequestCache イベント ハンドラーのコレクションに追加します。

AddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler)

指定した UpdateRequestCache イベントを、現在の要求の非同期 UpdateRequestCache イベント ハンドラーのコレクションに追加します。

CompleteRequest()

ASP.NET は、HTTP パイプラインの実行チェーン内のすべてのイベントとフィルター処理をバイパスし、EndRequest イベントを直接実行します。

Dispose()

HttpApplication インスタンスを破棄します。

Equals(Object)

指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetOutputCacheProviderName(HttpContext)

Web サイト用に構成されている既定の出力キャッシュ プロバイダーの名前を取得します。

GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
GetVaryByCustomString(HttpContext, String)

VaryByCustom プロパティのアプリケーション全体の実装を提供します。

Init()

すべてのイベント ハンドラー モジュールが追加された後、カスタム初期化コードを実行します。

MemberwiseClone()

現在の Objectの簡易コピーを作成します。

(継承元 Object)
OnExecuteRequestStep(Action<HttpContextBase,Action>)

要求実行ステップの実行時に呼び出すコールバックを指定します。

RegisterModule(Type)

アプリケーション モジュールを登録します。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

イベント

名前 説明
AcquireRequestState

ASP.NET が現在の要求に関連付けられている現在の状態 (セッション状態など) を取得するときに発生します。

AuthenticateRequest

セキュリティ モジュールがユーザーの ID を確立したときに発生します。

AuthorizeRequest

セキュリティ モジュールがユーザー承認を検証したときに発生します。

BeginRequest

ASP.NET が要求に応答すると、HTTP パイプラインの実行チェーンの最初のイベントとして発生します。

Disposed

アプリケーションが破棄されるときに発生します。

EndRequest

ASP.NET が要求に応答するときに、HTTP パイプラインの実行チェーンの最後のイベントとして発生します。

Error

ハンドルされない例外がスローされたときに発生します。

LogRequest

ASP.NET が現在の要求のログ記録を実行する直前に発生します。

MapRequestHandler

要求に応答するためにハンドラーが選択されたときに発生します。

PostAcquireRequestState

現在の要求に関連付けられている要求の状態 (セッション状態など) が取得されたときに発生します。

PostAuthenticateRequest

セキュリティ モジュールがユーザーの ID を確立したときに発生します。

PostAuthorizeRequest

現在の要求のユーザーが承認されたときに発生します。

PostLogRequest

ASP.NET が LogRequest イベントのすべてのイベント ハンドラーの処理を完了したときに発生します。

PostMapRequestHandler

ASP.NET が現在の要求を適切なイベント ハンドラーにマップしたときに発生します。

PostReleaseRequestState

ASP.NET がすべての要求イベント ハンドラーの実行を完了し、要求状態データが格納されたときに発生します。

PostRequestHandlerExecute

ASP.NET イベント ハンドラー (ページや XML Web サービスなど) の実行が完了したときに発生します。

PostResolveRequestCache

ASP.NET が現在のイベント ハンドラーの実行をバイパスし、キャッシュ モジュールがキャッシュからの要求を処理できるようにする場合に発生します。

PostUpdateRequestCache

ASP.NET がキャッシュ モジュールの更新を完了し、キャッシュからの後続の要求を処理するために使用される応答を格納するときに発生します。

PreRequestHandlerExecute

ASP.NET がイベント ハンドラー (ページや XML Web サービスなど) の実行を開始する直前に発生します。

PreSendRequestContent

ASP.NET がクライアントにコンテンツを送信する直前に発生します。

PreSendRequestHeaders

クライアントに HTTP ヘッダー ASP.NET 送信する直前に発生します。

ReleaseRequestState

ASP.NET がすべての要求イベント ハンドラーの実行を完了した後に発生します。 このイベントにより、状態モジュールは現在の状態データを保存します。

RequestCompleted

要求に関連付けられているマネージド オブジェクトが解放されたときに発生します。

ResolveRequestCache

ASP.NET が承認イベントを終了し、キャッシュ モジュールがキャッシュからの要求を処理し、イベント ハンドラー (ページや XML Web サービスなど) の実行をバイパスしたときに発生します。

UpdateRequestCache

キャッシュ モジュールが、キャッシュからの後続の要求を処理するために使用される応答を格納できるようにするために、ASP.NET がイベント ハンドラーの実行を完了したときに発生します。

明示的なインターフェイスの実装

名前 説明
IHttpAsyncHandler.BeginProcessRequest(HttpContext, AsyncCallback, Object)

HTTP イベント ハンドラーへの非同期呼び出しを開始します。

IHttpAsyncHandler.EndProcessRequest(IAsyncResult)

プロセスの終了時に非同期プロセス End メソッドを提供します。

IHttpHandler.IsReusable

別の要求でIHttpHandler オブジェクトを使用できるかどうかを示すBoolean値を取得します。

IHttpHandler.ProcessRequest(HttpContext)

IHttpHandler インターフェイスを実装するカスタム HTTP ハンドラーによる HTTP Web 要求の処理を有効にします。

適用対象

こちらもご覧ください