HttpApplication クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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 ハンドラーにマップされた要求にのみ適用されます。
アプリケーション イベントは、次の順序で発生します。
-
イベントの PostResolveRequestCache 後とイベントの PostMapRequestHandler 前に、イベント ハンドラー (要求 URL に対応するページ) が作成されます。 サーバーが統合モードで IIS 7.0 を実行していて、少なくとも .NET Framework バージョン 3.0 である場合、MapRequestHandlerイベントが発生します。 サーバーが IIS 7.0 をクラシック モードまたは以前のバージョンの IIS で実行している場合、このイベントは処理できません。
-
イベント ハンドラーが実行されます。
-
イベントが発生すると PostReleaseRequestState 、既存の応答フィルターで出力がフィルター処理されます。
-
このイベントは IIS 7.0 統合モードでサポートされており、少なくとも .NET Framework 3.0
-
このイベントは IIS 7.0 統合モードでサポートされており、少なくとも .NET Framework 3.0
コンストラクター
HttpApplication() |
HttpApplication クラスの新しいインスタンスを初期化します。 |
プロパティ
Application |
アプリケーションの現在の状態を取得します。 |
Context |
現在の要求に関する HTTP 固有の情報を取得します。 |
Events |
すべてのアプリケーション イベントを処理するイベント ハンドラー デリゲートのリストを取得します。 |
Modules |
現在のアプリケーションのモジュールのコレクションを取得します。 |
Request |
現在の要求に関する組み込みの要求オブジェクトを取得します。 |
Response |
現在の要求に関する組み込みの応答オブジェクトを取得します。 |
Server |
現在の要求に関する組み込みのサーバー オブジェクトを取得します。 |
Session |
セッション データへのアクセスを実現する組み込みのセッション オブジェクトを取得します。 |
Site |
IComponent の実装に対するサイト インターフェイスを取得または設定します。 |
User |
現在の要求に関する組み込みのユーザー オブジェクトを取得します。 |
メソッド
イベント
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) |
処理の終了時に、非同期処理の |
IHttpHandler.IsReusable |
別の要求で IHttpHandler オブジェクトを使用できるかどうかを示す |
IHttpHandler.ProcessRequest(HttpContext) |
IHttpHandler インターフェイスを実装するカスタム HTTP ハンドラーによって、HTTP Web 要求の処理を有効にします。 |
適用対象
こちらもご覧ください
.NET