HttpServerUtility.Transfer メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
現在のページの実行を終了し、現在の要求の新しいページの実行を開始します。
オーバーロード
| 名前 | 説明 |
|---|---|
| Transfer(String) |
現在の要求の場合、現在のページの実行を終了し、ページの指定された URL パスを使用して新しいページの実行を開始します。 |
| Transfer(String, Boolean) |
現在のページの実行を終了し、指定したページの URL パスを使用して新しいページの実行を開始します。 QueryStringコレクションとForm コレクションをクリアするかどうかを指定します。 |
| Transfer(IHttpHandler, Boolean) |
現在のページの実行を終了し、 IHttpHandler インターフェイスを実装し、 QueryString コレクションと Form コレクションをクリアするかどうかを指定するカスタム HTTP ハンドラーを使用して、新しい要求の実行を開始します。 |
Transfer(String)
現在の要求の場合、現在のページの実行を終了し、ページの指定された URL パスを使用して新しいページの実行を開始します。
public:
void Transfer(System::String ^ path);
public void Transfer(string path);
member this.Transfer : string -> unit
Public Sub Transfer (path As String)
パラメーター
- path
- String
実行するサーバー上の新しいページの URL パス。
注釈
転送されるページは、別の.aspx ページにする必要があります。 たとえば、.asp または .asmx ページへの転送は無効です。 Transfer メソッドは、QueryStringコレクションとForm コレクションを保持します。
Transfer は Endを呼び出し、完了時に ThreadAbortException 例外をスローします。
ASP.NET は、現在のユーザーが Transfer メソッドによって提供されたリソースを表示する権限を持っていることを確認しません。 ASP.NET 承認ロジックと認証ロジックは、元のリソース ハンドラーが呼び出される前に実行されますが、ASP.NET は Transfer メソッドによって示されるハンドラーを直接呼び出し、新しいリソースの認証および承認ロジックを再実行しません。 アプリケーションのセキュリティ ポリシーで、クライアントがリソースにアクセスするための適切な承認を必要とする場合、アプリケーションは強制的に再認証するか、カスタム アクセス制御メカニズムを提供する必要があります。
Transfer メソッドではなく、Redirect メソッドを使用して、強制的に再認証を行うことができます。 Redirect メソッドは、ブラウザーが新しいリソースを要求するクライアント側のリダイレクトを実行します。 このリダイレクトはシステムに入る新しい要求であるため、インターネット インフォメーション サービス (IIS) と ASP.NET セキュリティ ポリシーの両方のすべての認証および承認ロジックが適用されます。
アプリケーションが Transfer メソッドを呼び出す前に、IsInRole メソッドを使用するカスタム承認メソッドを組み込むことで、ユーザーがリソースを表示するアクセス許可を持っていることを確認できます。
適用対象
Transfer(String, Boolean)
現在のページの実行を終了し、指定したページの URL パスを使用して新しいページの実行を開始します。 QueryStringコレクションとForm コレクションをクリアするかどうかを指定します。
public:
void Transfer(System::String ^ path, bool preserveForm);
public void Transfer(string path, bool preserveForm);
member this.Transfer : string * bool -> unit
Public Sub Transfer (path As String, preserveForm As Boolean)
パラメーター
- path
- String
実行するサーバー上の新しいページの URL パス。
- preserveForm
- Boolean
例外
現在のページ要求はコールバックです。
例
次の例では、現在のページと同じディレクトリに新しいページを実行します。
Server.Transfer("Logon.aspx", true);
Server.Transfer("Logon.aspx", true)
注釈
転送されるページは、別の.aspx ページにする必要があります。 たとえば、.asp または .asmx ページへの転送は無効です。
Transfer は Endを呼び出し、完了時に ThreadAbortException 例外をスローします。
preserveForm パラメーターを true に設定すると、ターゲット ページは、PreviousPage プロパティを使用して前のページのビューステートにアクセスできるようになります。
セキュリティ上の理由から、 enableViewStateMac 属性は true に設定したままにする必要があります。 ASP.NET は、現在のユーザーが Transfer メソッドによって提供されたリソースを表示する権限を持っていることを確認しません。 ASP.NET 承認ロジックと認証ロジックは、元のリソース ハンドラーが呼び出される前に実行されますが、ASP.NET は Transfer メソッドによって示されるハンドラーを直接呼び出し、新しいリソースの認証および承認ロジックを再実行しません。 アプリケーションのセキュリティ ポリシーで、クライアントがリソースにアクセスするための適切な承認を必要とする場合、アプリケーションは強制的に再認証するか、カスタム アクセス制御メカニズムを提供する必要があります。
Transfer メソッドではなく、Redirect メソッドを使用して、強制的に再認証を行うことができます。 Redirect メソッドは、ブラウザーが新しいリソースを要求するクライアント側のリダイレクトを実行します。 このリダイレクトはシステムに入る新しい要求であるため、インターネット インフォメーション サービス (IIS) と ASP.NET セキュリティ ポリシーの両方のすべての認証および承認ロジックが適用されます。
アプリケーションが Transfer メソッドを呼び出す前に、IsInRole メソッドを使用するカスタム承認メソッドを組み込むことで、ユーザーがリソースを表示するアクセス許可を持っていることを確認できます。
適用対象
Transfer(IHttpHandler, Boolean)
現在のページの実行を終了し、 IHttpHandler インターフェイスを実装し、 QueryString コレクションと Form コレクションをクリアするかどうかを指定するカスタム HTTP ハンドラーを使用して、新しい要求の実行を開始します。
public:
void Transfer(System::Web::IHttpHandler ^ handler, bool preserveForm);
public void Transfer(System.Web.IHttpHandler handler, bool preserveForm);
member this.Transfer : System.Web.IHttpHandler * bool -> unit
Public Sub Transfer (handler As IHttpHandler, preserveForm As Boolean)
パラメーター
- handler
- IHttpHandler
現在の要求を転送する IHttpHandler を実装する HTTP ハンドラー。
- preserveForm
- Boolean
例外
現在のページ要求はコールバックです。
注釈
共通言語仕様 (CLS) に準拠している任意の言語で、特定の定義済みの種類の HTTP 要求を処理するカスタム HTTP ハンドラーを記述できます。 従来の ASP (従来の ASP) ページまたは ASP.NET ページではなく、HTTP ハンドラー クラスで定義されている実行可能コードは、これらの特定の要求に応答します。 HTTP ハンドラーを使用すると、インターネット インフォメーション サービス (IIS) を実行している Web サーバーの低レベルの要求および応答サービスを操作できます。また、ISAPI 拡張機能に似ていますが、プログラミング モデルがシンプルな機能を提供します。
preserveForm パラメーターを true に設定すると、ターゲット ページは、PreviousPage プロパティを使用して前のページのビューステートにアクセスできるようになります。
セキュリティ上の理由から、 enableViewStateMac 属性は true に設定したままにする必要があります。 ASP.NET は、現在のユーザーが Transfer メソッドによって提供されたリソースを表示する権限を持っていることを確認しません。 ASP.NET 承認ロジックと認証ロジックは、元のリソース ハンドラーが呼び出される前に実行されますが、ASP.NET は Transfer メソッドで示されるハンドラーを直接呼び出し、新しいリソースの認証および承認ロジックを再実行しません。 アプリケーションのセキュリティ ポリシーで、クライアントがリソースにアクセスするための適切な承認を必要とする場合、アプリケーションは強制的に再認証するか、カスタム アクセス制御メカニズムを提供する必要があります。
Transfer メソッドではなく、Redirect メソッドを使用して、強制的に再認証を行うことができます。 Redirect メソッドは、ブラウザーが新しいリソースを要求するクライアント側のリダイレクトを実行します。 このリダイレクトはシステムに入る新しい要求であるため、IIS と ASP.NET セキュリティ ポリシーの両方のすべての認証および承認ロジックが適用されます。
アプリケーションが Transfer メソッドを呼び出す前に、IsInRole メソッドを使用するカスタム承認メソッドを組み込むことで、ユーザーがリソースを表示するアクセス許可を持っていることを確認できます。