共用方式為


HttpServerUtility.Transfer 方法

定義

終止目前頁面的執行,並開始執行當前請求的新頁面。

多載

名稱 Description
Transfer(String)

對於目前的請求,會終止當前頁面的執行,並開始使用指定的 URL 路徑執行新頁面。

Transfer(String, Boolean)

終止當前頁面的執行,並透過指定的頁面 URL 路徑開始執行新頁面。 規定是否要清除 QueryString 這些與 Form 收藏。

Transfer(IHttpHandler, Boolean)

透過自訂 HTTP 處理器實作 IHttpHandler 介面並指定是否清除 QueryStringForm 集合,終止目前頁面的執行並開始執行新的請求。

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 的處理器,且不會為新資源重跑認證與授權邏輯。 如果您的應用程式安全政策要求用戶端必須擁有適當的授權才能存取資源,應用程式應強制重新授權或提供自訂的存取控制機制。

你可以用方法 Redirect 強制重新授權,而不是用方法 Transfer 。 此 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

true保存QueryStringForm收藏false;清理QueryStringForm收藏。

例外狀況

目前的頁面請求是回撥。

範例

以下範例是在與當前頁面相同的目錄中執行一個新頁面。

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

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

備註

轉移到的頁面應該是另一個.aspx頁面。 例如,轉移到 .asp 或 .asmx 頁面是無效的。

Transfer 呼叫 End,完成時拋 ThreadAbortException 出例外。

如果你將參數設 preserveFormtrue,目標頁面就能透過屬性 PreviousPage 存取前一頁的檢視狀態。

為了安全起見,你應該將屬性設 enableViewStateMactrue。 ASP.NET 不會驗證目前使用者是否有權查看該 Transfer 方法所提供資源。 雖然 ASP.NET 授權與認證邏輯會在原始資源處理器被呼叫前執行,ASP.NET 直接呼叫方法所指示 Transfer 的處理器,且不會為新資源重跑認證與授權邏輯。 如果您的應用程式安全政策要求用戶端必須擁有適當的授權才能存取資源,應用程式應強制重新授權或提供自訂的存取控制機制。

你可以用方法 Redirect 強制重新授權,而不是用方法 Transfer 。 此 Redirect 方法執行客戶端重定向,瀏覽器在此請求新的資源。 由於此重定向是新進入系統的請求,因此必須遵守網際網路資訊服務(IIS)及 ASP.NET 安全政策的所有認證與授權邏輯。

你可以透過在應用程式呼叫Transfer該方法前,加入使用IsInRole該方法的自訂授權方法來驗證使用者是否有權限查看該資源。

適用於

Transfer(IHttpHandler, Boolean)

透過自訂 HTTP 處理器實作 IHttpHandler 介面並指定是否清除 QueryStringForm 集合,終止目前頁面的執行並開始執行新的請求。

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

true保存QueryStringForm收藏false;清理QueryStringForm收藏。

例外狀況

目前的頁面請求是回撥。

備註

你可以撰寫自訂的 HTTP 處理器,以處理任何符合通用語言規範(CLS)的語言中特定、預定義的 HTTP 請求類型。 在 HTTP 處理程式類別中定義的可執行程式碼,而非傳統的 ASP(也稱為經典 ASP)頁面或 ASP.NET 頁面,會回應這些特定請求。 HTTP 處理器允許與執行網際網路資訊服務(IIS)的網頁伺服器的低階請求與回應服務互動,並提供類似 ISAPI 擴充功能但程式設計更簡單的功能。

如果你將參數設 preserveFormtrue,目標頁面就能透過屬性 PreviousPage 存取前一頁的檢視狀態。

為了安全起見,你應該將屬性設 enableViewStateMactrue。 ASP.NET 不會驗證目前使用者是否有權查看該 Transfer 方法所提供資源。 雖然 ASP.NET 授權與認證邏輯會在原始資源處理器被呼叫前執行,ASP.NET 會直接呼叫該方法所 Transfer 指示的處理器,且不會重新執行新資源的認證與授權邏輯。 如果您的應用程式的安全政策要求用戶端必須擁有適當的授權才能存取資源,應用程式應強制重新授權或提供自訂的存取控制機制。

你可以用方法 Redirect 強制重新授權,而不是用方法 Transfer 。 此 Redirect 方法執行客戶端重定向,瀏覽器在此請求新的資源。 由於此重定向是新進入系統的請求,因此必須遵守 IIS 與 ASP.NET 安全政策的所有認證與授權邏輯。

你可以透過在應用程式呼叫Transfer該方法前,加入使用IsInRole該方法的自訂授權方法來驗證使用者是否有權限查看該資源。

適用於