HttpServerUtility.Transfer メソッド

定義

現在のページの実行を終了し、現在の要求に対して新しいページの実行を開始します。Terminates execution of the current page and starts execution of a new page for the current request.

オーバーロード

Transfer(String)

現在の要求に対して、現在のページの実行を終了し、指定された URL パスを使用して新しいページの実行を開始します。For the current request, terminates execution of the current page and starts execution of a new page by using the specified URL path of the page.

Transfer(String, Boolean)

現在のページの実行を終了し、指定された URL パスを使用して新しいページの実行を開始します。Terminates execution of the current page and starts execution of a new page by using the specified URL path of the page. QueryString コレクションと Form コレクションを削除するかどうかを指定します。Specifies whether to clear the QueryString and Form collections.

Transfer(IHttpHandler, Boolean)

現在のページの実行を終了し、カスタム HTTP ハンドラーを使用して新しい要求の実行を開始します。このハンドラーは、IHttpHandler インターフェイスを実装し、QueryString コレクションおよび Form コレクションをクリアするかどうかを指定します。Terminates execution of the current page and starts execution of a new request by using a custom HTTP handler that implements the IHttpHandler interface and specifies whether to clear the QueryString and Form collections.

Transfer(String)

現在の要求に対して、現在のページの実行を終了し、指定された URL パスを使用して新しいページの実行を開始します。For the current request, terminates execution of the current page and starts execution of a new page by using the specified URL path of the page.

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 パス。The URL path of the new page on the server to execute.

注釈

に転送されるページは、別の .aspx ページである必要があります。The page transferred to should be another .aspx page. たとえば、.asp または .asmx ページへの転送が有効ではありません。For instance, a transfer to an .asp or .asmx page is not valid. Transfer メソッドは、QueryString コレクションと Form コレクションを保持します。The Transfer method preserves the QueryString and Form collections.

TransferEndを呼び出します。これにより、完了時に ThreadAbortException 例外がスローされます。Transfer calls End, which throws a ThreadAbortException exception upon completion.

ASP.NET は、現在のユーザーが Transfer メソッドによって配信されたリソースを表示する権限を持っているかどうかを検証しません。ASP.NET does not verify that the current user is authorized to view the resource delivered by the Transfer method. ASP.NET 承認と認証ロジックは、元のリソースハンドラーが呼び出される前に実行されますが、ASP.NET は、Transfer メソッドによって示されるハンドラーを直接呼び出し、新しいリソースの認証および承認ロジックを再実行しません。Although the ASP.NET authorization and authentication logic runs before the original resource handler is called, ASP.NET directly calls the handler indicated by the Transfer method and does not rerun authentication and authorization logic for the new resource. アプリケーションのセキュリティポリシーで、クライアントがリソースにアクセスするための適切な承認を要求する必要がある場合、アプリケーションは再認証を強制するか、カスタムのアクセス制御メカニズムを提供する必要があります。If your application's security policy requires clients to have appropriate authorization to access the resource, the application should force reauthorization or provide a custom access-control mechanism.

Transfer メソッドの代わりに Redirect メソッドを使用して、強制的に再認証することができます。You can force reauthorization by using the Redirect method instead of the Transfer method. Redirect メソッドは、ブラウザーが新しいリソースを要求するクライアント側のリダイレクトを実行します。The Redirect method performs a client-side redirect in which the browser requests the new resource. このリダイレクトはシステムへの新しい要求であるため、インターネットインフォメーションサービス (IIS) と ASP.NET の両方のセキュリティポリシーのすべての認証と承認のロジックが対象となります。Because this redirect is a new request entering the system, it is subjected to all the authentication and authorization logic of both Internet Information Services (IIS) and ASP.NET security policy.

アプリケーションが Transfer メソッドを呼び出す前に、IsInRole メソッドを使用するカスタム承認メソッドを組み込むことによって、ユーザーがリソースを表示するアクセス許可を持っていることを確認できます。You can verify that the user has permission to view the resource by incorporating a custom authorization method that uses the IsInRole method before the application calls the Transfer method.

Transfer(String, Boolean)

現在のページの実行を終了し、指定された URL パスを使用して新しいページの実行を開始します。Terminates execution of the current page and starts execution of a new page by using the specified URL path of the page. QueryString コレクションと Form コレクションを削除するかどうかを指定します。Specifies whether to clear the QueryString and Form collections.

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 パス。The URL path of the new page on the server to execute.

preserveForm
Boolean

true コレクションおよび QueryString コレクションを保持する場合は、Formfalse コレクションおよび QueryString コレクションをクリアする場合は、Formtrue to preserve the QueryString and Form collections; false to clear the QueryString and Form collections.

例外

現在のページ要求がコールバックです。The current page request is a callback.

次の例では、現在のページと同じディレクトリに新しいページを実行します。The following example executes a new page in the same directory as the current page.

Server.Transfer("Logon.aspx", true);

Server.Transfer("Logon.aspx", true)

注釈

に転送されるページは、別の .aspx ページである必要があります。The page transferred to should be another .aspx page. たとえば、.asp または .asmx ページへの転送が有効ではありません。For instance, a transfer to an .asp or .asmx page is not valid.

TransferEndを呼び出します。これにより、完了時に ThreadAbortException 例外がスローされます。Transfer calls End, which throws a ThreadAbortException exception upon completion.

preserveForm パラメーターを trueに設定すると、ターゲットページは PreviousPage プロパティを使用して、前のページのビューステートにアクセスできるようになります。If you set the preserveForm parameter to true, the target page will be able to access the view state of the previous page by using the PreviousPage property.

セキュリティ上の理由から、enableViewStateMac 属性を trueに設定しておく必要があります。For security purposes, you should keep the enableViewStateMac attribute set to true. ASP.NET は、現在のユーザーが Transfer メソッドによって配信されたリソースを表示する権限を持っているかどうかを検証しません。ASP.NET does not verify that the current user is authorized to view the resource delivered by the Transfer method. ASP.NET 承認と認証ロジックは、元のリソースハンドラーが呼び出される前に実行されますが、ASP.NET は、Transfer メソッドによって示されるハンドラーを直接呼び出し、新しいリソースの認証および承認ロジックを再実行しません。Although the ASP.NET authorization and authentication logic runs before the original resource handler is called, ASP.NET directly calls the handler indicated by the Transfer method and does not rerun authentication and authorization logic for the new resource. アプリケーションのセキュリティポリシーで、クライアントがリソースにアクセスするための適切な承認を要求する必要がある場合、アプリケーションは再認証を強制するか、カスタムのアクセス制御メカニズムを提供する必要があります。If your application's security policy requires clients to have appropriate authorization to access the resource, the application should force reauthorization or provide a custom access-control mechanism.

Transfer メソッドの代わりに Redirect メソッドを使用して、強制的に再認証することができます。You can force reauthorization by using the Redirect method instead of the Transfer method. Redirect メソッドは、ブラウザーが新しいリソースを要求するクライアント側のリダイレクトを実行します。The Redirect method performs a client-side redirect in which the browser requests the new resource. このリダイレクトはシステムへの新しい要求であるため、インターネットインフォメーションサービス (IIS) と ASP.NET の両方のセキュリティポリシーのすべての認証と承認のロジックが対象となります。Because this redirect is a new request entering the system, it is subjected to all the authentication and authorization logic of both Internet Information Services (IIS) and ASP.NET security policy.

アプリケーションが Transfer メソッドを呼び出す前に、IsInRole メソッドを使用するカスタム承認メソッドを組み込むことによって、ユーザーがリソースを表示するアクセス許可を持っていることを確認できます。You can verify that the user has permission to view the resource by incorporating a custom authorization method that uses the IsInRole method before the application calls the Transfer method.

Transfer(IHttpHandler, Boolean)

現在のページの実行を終了し、カスタム HTTP ハンドラーを使用して新しい要求の実行を開始します。このハンドラーは、IHttpHandler インターフェイスを実装し、QueryString コレクションおよび Form コレクションをクリアするかどうかを指定します。Terminates execution of the current page and starts execution of a new request by using a custom HTTP handler that implements the IHttpHandler interface and specifies whether to clear the QueryString and Form collections.

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 ハンドラー。The HTTP handler that implements the IHttpHandler to transfer the current request to.

preserveForm
Boolean

true コレクションおよび QueryString コレクションを保持する場合は、Formfalse コレクションおよび QueryString コレクションをクリアする場合は、Formtrue to preserve the QueryString and Form collections; false to clear the QueryString and Form collections.

例外

現在のページ要求がコールバックです。The current page request is a callback.

注釈

カスタム HTTP ハンドラーを記述して、共通言語仕様 (CLS) に準拠している任意の言語で、事前に定義された特定の種類の HTTP 要求を処理することができます。You can write custom HTTP handlers to process specific, predefined types of HTTP requests in any language that is compliant with the Common Language Specification (CLS). 従来の ASP (classic ASP) ページまたは ASP.NET ページではなく、HTTP ハンドラークラスで定義されている実行可能コードは、これらの特定の要求に応答します。Executable code that is defined in the HTTP handler classes instead of conventional ASP (also known as classic ASP) pages or ASP.NET pages responds to these specific requests. HTTP ハンドラーを使用すると、インターネットインフォメーションサービス (IIS) を実行している Web サーバーの下位レベルの要求および応答サービスと対話できます。また、ISAPI 拡張に似ていても、より単純なプログラミングモデルを使用する機能が提供されます。HTTP handlers allow for interacting with the low-level request and response services of a Web server that is running Internet Information Services (IIS), and they provide functionality that is similar to ISAPI extensions but with a simpler programming model.

preserveForm パラメーターを trueに設定すると、ターゲットページは PreviousPage プロパティを使用して、前のページのビューステートにアクセスできるようになります。If you set the preserveForm parameter to true, the target page will be able to access the view state of the previous page by using the PreviousPage property.

セキュリティ上の理由から、enableViewStateMac 属性を trueに設定しておく必要があります。For security purposes, you should keep the enableViewStateMac attribute set to true. ASP.NET は、現在のユーザーが Transfer メソッドによって配信されたリソースを表示する権限を持っているかどうかを検証しません。ASP.NET does not verify that the current user is authorized to view the resource delivered by the Transfer method. ASP.NET 承認と認証ロジックは、元のリソースハンドラーが呼び出される前に実行されますが、ASP.NET は、Transfer メソッドによって示されるハンドラーを直接呼び出し、新しいリソースの認証および承認ロジックを再実行しません。Although the ASP.NET authorization and authentication logic runs before the original resource handler is called, ASP.NET directly calls the handler indicated by the Transfer method, and does not rerun authentication and authorization logic for the new resource. アプリケーションのセキュリティポリシーで、リソースにアクセスするための適切な承認をクライアントに要求する場合は、アプリケーションで再認証を強制するか、カスタムのアクセス制御メカニズムを提供する必要があります。If the security policy for your application requires clients to have appropriate authorization to access the resource, the application should force reauthorization or provide a custom access-control mechanism.

Transfer メソッドの代わりに Redirect メソッドを使用して、強制的に再認証することができます。You can force reauthorization by using the Redirect method instead of the Transfer method. Redirect メソッドは、ブラウザーが新しいリソースを要求するクライアント側のリダイレクトを実行します。The Redirect method performs a client-side redirect in which the browser requests the new resource. このリダイレクトはシステムへの新しい要求であるため、IIS と ASP.NET の両方のセキュリティポリシーのすべての認証と承認のロジックが対象となります。Because this redirect is a new request entering the system, it is subjected to all the authentication and authorization logic of both the IIS and ASP.NET security policy.

アプリケーションが Transfer メソッドを呼び出す前に、IsInRole メソッドを使用するカスタム承認メソッドを組み込むことによって、ユーザーがリソースを表示するアクセス許可を持っていることを確認できます。You can verify that the user has permission to view the resource by incorporating a custom authorization method that uses the IsInRole method before the application calls the Transfer method.

適用対象