HttpServerUtility.Transfer 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
結束目前網頁的執行,開始針對目前的要求執行新網頁。
多載
Transfer(String) |
針對目前的要求結束目前網頁的執行,並使用指定的網頁 URL 路徑開始執行新網頁。 |
Transfer(String, Boolean) |
結束目前網頁的執行,並使用指定的網頁 URL 路徑開始執行新網頁。 指定是否要清除 QueryString 和 Form 集合。 |
Transfer(IHttpHandler, Boolean) |
結束目前網頁的執行,並使用實作 IHttpHandler 介面的自訂 HTTP 處理常式開始執行新要求,以及指定是否要清除 QueryString 和 Form 集合。 |
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 會執行用戶端重新導向,瀏覽器會在其中要求新的資源。 由於此重新導向是進入系統的新要求,因此會受限於 Internet Information Services (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
表示保留 QueryString 和 Form 集合; false
表示清除 QueryString 和 Form 集合。
例外狀況
目前的網頁要求為回呼。
範例
下列範例會在與目前頁面相同的目錄中執行新頁面。
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 指示的處理常式,而且不會重新執行新資源的驗證和授權邏輯。 如果您的應用程式安全性原則要求用戶端具有適當的授權才能存取資源,則應用程式應該強制重新授權或提供自訂存取控制機制。
您可以使用 方法來強制重新授權 Redirect ,而不是 Transfer 方法。 方法 Redirect 會執行用戶端重新導向,瀏覽器會在其中要求新的資源。 由於此重新導向是進入系統的新要求,因此會受限於 Internet Information Services (IIS) 和 ASP.NET 安全性原則的所有驗證和授權邏輯。
您可以藉由在應用程式呼叫 Transfer 方法之前,併入使用 IsInRole 方法的自訂授權方法,確認使用者有權檢視資源。
適用於
Transfer(IHttpHandler, Boolean)
結束目前網頁的執行,並使用實作 IHttpHandler 介面的自訂 HTTP 處理常式開始執行新要求,以及指定是否要清除 QueryString 和 Form 集合。
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
HTTP 處理常式,實作 IHttpHandler,以傳輸目前要求至此。
- preserveForm
- Boolean
true
表示保留 QueryString 和 Form 集合; false
表示清除 QueryString 和 Form 集合。
例外狀況
目前的網頁要求為回呼。
備註
您可以撰寫自訂 HTTP 處理常式來處理符合 Common Language Specification (CLS) 之任何語言的特定預先定義 HTTP 要求類型。 在 HTTP 處理常式類別中定義的可執行程式碼,而不是傳統 ASP (也稱為傳統 ASP) 頁面或 ASP.NET 網頁會回應這些特定要求。 HTTP 處理常式允許與執行 Internet Information Services (IIS) 之 Web 服務器的低階要求和回應服務互動,並提供類似 ISAPI 延伸模組但具有較簡單程式設計模型的功能。
如果您將 preserveForm
參數設定為 true
,則目標頁面將能夠使用 PreviousPage 屬性來存取上一頁的檢視狀態。
基於安全性目的,您應該將 屬性設定 enableViewStateMac
為 true
。 ASP.NET 不會確認目前使用者有權檢視 方法所 Transfer 傳遞的資源。 雖然 ASP.NET 授權和驗證邏輯會在呼叫原始資源處理常式之前執行,但 ASP.NET 直接呼叫 方法所 Transfer 指示的處理常式,而且不會重新執行新資源的驗證和授權邏輯。 如果應用程式的安全性原則要求用戶端具有適當的授權才能存取資源,則應用程式應該強制重新授權或提供自訂存取控制機制。
您可以使用 方法來強制重新授權 Redirect ,而不是 Transfer 方法。 方法 Redirect 會執行用戶端重新導向,瀏覽器會在其中要求新的資源。 由於此重新導向是進入系統的新要求,因此會受限於 IIS 和 ASP.NET 安全性原則的所有驗證和授權邏輯。
您可以藉由在應用程式呼叫 Transfer 方法之前,併入使用 IsInRole 方法的自訂授權方法,確認使用者有權檢視資源。