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 アプリケーション リソースに対する各要求をインターセプトするため、クライアント要求をフィルター処理できます。 イベントをサブスクライブする 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 ");
        }
    }
}
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 モジュールのイベントが発生する前に、HTTP モジュールに関する ASP.NET に通知するために、Web.config ファイルの構成設定を変更する必要があります。 次の例は、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 で導入されています。 詳細については、「.NET Framework のバージョンおよび依存関係」を参照してください。

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)

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

AddOnAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler)

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

AddOnAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler)

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

AddOnAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnBeginRequestAsync(BeginEventHandler, EndEventHandler)

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

AddOnBeginRequestAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnEndRequestAsync(BeginEventHandler, EndEventHandler)

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

AddOnEndRequestAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnLogRequestAsync(BeginEventHandler, EndEventHandler)

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

AddOnLogRequestAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler)

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

AddOnMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler)

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

AddOnPostAcquireRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler)

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

AddOnPostAuthenticateRequestAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler)

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

AddOnPostAuthorizeRequestAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler)

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

AddOnPostLogRequestAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler)

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

AddOnPostMapRequestHandlerAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler)

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

AddOnPostReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler)

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

AddOnPostRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler)

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

AddOnPostResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler)

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

AddOnPostUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler)

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

AddOnPreRequestHandlerExecuteAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler)

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

AddOnReleaseRequestStateAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler)

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

AddOnResolveRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

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

AddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler)

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

AddOnUpdateRequestCacheAsync(BeginEventHandler, EndEventHandler, Object)

指定した 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

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

ReleaseRequestState

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

RequestCompleted

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

ResolveRequestCache

イベント ハンドラー (ページまたは Web サービスなど) の実行を省略してキャッシング モジュールでキャッシュからの要求を処理できるようにするために、ASP.NET が承認イベントを完了したときに発生します。

UpdateRequestCache

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

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

IHttpAsyncHandler.BeginProcessRequest(HttpContext, AsyncCallback, Object)

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

IHttpAsyncHandler.EndProcessRequest(IAsyncResult)

処理の終了時に、非同期処理の End メソッドを提供します。

IHttpHandler.IsReusable

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

IHttpHandler.ProcessRequest(HttpContext)

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

適用対象

こちらもご覧ください