HttpServerUtility.Execute 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
在當前請求的上下文中執行指定資源的處理器,並將執行回傳給呼叫該請求的頁面。
多載
| 名稱 | Description |
|---|---|
| Execute(String) |
在當前請求的情境中執行指定的虛擬路徑處理器。 |
| Execute(String, Boolean) |
在當前請求的情境中執行指定虛擬路徑的處理器,並指定是否清除 QueryString 和 Form 集合。 |
| Execute(String, TextWriter) |
在當前請求的情境中執行指定的虛擬路徑處理器。 A TextWriter 會擷取執行處理器的輸出。 |
| Execute(String, TextWriter, Boolean) |
在當前請求的情境中執行指定的虛擬路徑處理器。 A TextWriter 捕捉頁面的輸出,而布林參數則指定是否清除 QueryString 和 Form 集合。 |
| Execute(IHttpHandler, TextWriter, Boolean) |
在當前請求的情境中執行指定的虛擬路徑處理器。 A TextWriter 會擷取執行處理器的輸出,而布林參數則指定是否清除 QueryString 和 Form 集合。 |
Execute(String)
在當前請求的情境中執行指定的虛擬路徑處理器。
public:
void Execute(System::String ^ path);
public void Execute(string path);
member this.Execute : string -> unit
Public Sub Execute (path As String)
參數
- path
- String
執行的 URL 路徑。
例外狀況
範例
以下範例顯示目前目錄中的.aspx頁「Updateinfo.aspx」。 程式執行會在Updateinfo.aspx頁面顯示後回到起始頁面。
Server.Execute("updateinfo.aspx");
Server.Execute("updateinfo.aspx")
備註
Execute該方法在新頁面執行完成後,繼續執行原始頁面。 該 Transfer 方法會無條件地將執行轉移到另一個處理器。
ASP.NET 不會驗證目前使用者是否有權查看該 Execute 方法所提供資源。 雖然 ASP.NET 授權與認證邏輯會在原始資源處理器被呼叫前執行,ASP.NET 直接呼叫方法所指示 Execute 的處理器,且不會為新資源重跑認證與授權邏輯。 如果您的應用程式安全政策要求用戶端必須擁有適當的授權才能存取資源,應用程式應強制重新授權或提供自訂的存取控制機制。
你可以用方法 Redirect 強制重新授權,而不是用方法 Execute 。 Redirect 執行客戶端重定向,瀏覽器請求新資源。 由於此重定向是新進入系統的請求,因此必須遵守網際網路資訊服務(IIS)及 ASP.NET 安全政策的所有認證與授權邏輯。
你可以透過在應用程式呼叫IsInRole該方法前,加入使用Execute該方法的自訂授權方法來驗證使用者是否有權限查看該資源。
適用於
Execute(String, Boolean)
在當前請求的情境中執行指定虛擬路徑的處理器,並指定是否清除 QueryString 和 Form 集合。
public:
void Execute(System::String ^ path, bool preserveForm);
public void Execute(string path, bool preserveForm);
member this.Execute : string * bool -> unit
Public Sub Execute (path As String, preserveForm As Boolean)
參數
- path
- String
執行的 URL 路徑。
- preserveForm
- Boolean
true保存QueryString與Form收藏false;清理QueryStringForm收藏。
例外狀況
範例
以下範例說明如何在目前請求中執行.aspx頁 Updateinfo.aspx 並保留 QueryString 與 Form 集合。 程式執行會在顯示後 Updateinfo.aspx 回到起始頁面。
private void Page_Load(Object sender, EventArgs e)
{
Server.Execute("updateinfo.aspx", true);
}
Sub Page_Load(ByVal Sender As Object, ByVal e As EventArgs)
Server.Execute("updateinfo.aspx", True)
End Sub
另請參閱
適用於
Execute(String, TextWriter)
在當前請求的情境中執行指定的虛擬路徑處理器。 A TextWriter 會擷取執行處理器的輸出。
public:
void Execute(System::String ^ path, System::IO::TextWriter ^ writer);
public void Execute(string path, System.IO.TextWriter writer);
member this.Execute : string * System.IO.TextWriter -> unit
Public Sub Execute (path As String, writer As TextWriter)
參數
- path
- String
執行的 URL 路徑。
- writer
- TextWriter
用來 TextWriter 捕捉輸出。
例外狀況
範例
以下範例在 Login.aspx 當前目錄的伺服器上執行該頁面,並透過 StringWriter 物件 writer接收該頁面的輸出。 它會將收到的 writer HTML 串流寫入 HTTP 輸出串流。
StringWriter writer = new StringWriter();
Server.Execute("Login.aspx", writer);
Response.Write("<H3>Please Login:</H3><br>"+ writer.ToString());
Dim writer As New StringWriter
Server.Execute("Login.aspx", writer)
Response.Write("<H3>Please Login:</H3><br>" & writer.ToString())
備註
Execute該方法在完成指定的虛擬路徑執行後,繼續執行原始請求。 該 Transfer 方法會無條件地將執行轉移到另一個處理器。
ASP.NET 不會驗證目前使用者是否有權查看該 Execute 方法所提供資源。 雖然 ASP.NET 授權與認證邏輯會在原始資源處理器被呼叫前執行,ASP.NET 直接呼叫方法所指示 Execute 的處理器,且不會為新資源重跑認證與授權邏輯。 如果您的應用程式安全政策要求用戶端必須擁有適當的授權才能存取資源,應用程式應強制重新授權或提供自訂的存取控制機制。
你可以用方法 Redirect 強制重新授權,而不是用方法 Execute 。 Redirect 執行客戶端重定向,瀏覽器請求新資源。 由於此重定向是新進入系統的請求,因此必須遵守網際網路資訊服務(IIS)及 ASP.NET 安全政策的所有認證與授權邏輯。
你可以透過在應用程式呼叫IsInRole該方法前,加入使用Execute該方法的自訂授權方法來驗證使用者是否有權限查看該資源。
另請參閱
適用於
Execute(String, TextWriter, Boolean)
在當前請求的情境中執行指定的虛擬路徑處理器。 A TextWriter 捕捉頁面的輸出,而布林參數則指定是否清除 QueryString 和 Form 集合。
public:
void Execute(System::String ^ path, System::IO::TextWriter ^ writer, bool preserveForm);
public void Execute(string path, System.IO.TextWriter writer, bool preserveForm);
member this.Execute : string * System.IO.TextWriter * bool -> unit
Public Sub Execute (path As String, writer As TextWriter, preserveForm As Boolean)
參數
- path
- String
執行的 URL 路徑。
- writer
- TextWriter
用來 TextWriter 捕捉輸出。
- preserveForm
- Boolean
true保存QueryString與Form收藏false;清理QueryStringForm收藏。
例外狀況
path 是 null。
path 這不是虛擬路徑。
範例
以下範例在 Login.aspx 當前目錄的伺服器上執行該頁面,並透過 StringWriter 物件 writer接收該頁面的輸出。 它會將收到的 writer HTML 串流寫入 HTTP 輸出串流。 該收藏FormQueryString品的內容被保存下來。
private void Page_Load(Object sender, EventArgs e)
{
System.IO.StringWriter writer = new System.IO.StringWriter();
Server.Execute("Login.aspx", writer, true);
Response.Write("<h3>Please Login:</h3><br />" + writer.ToString());
}
Sub Page_Load(ByVal Sender As Object, ByVal e As EventArgs)
Dim writer As System.IO.StringWriter = New System.IO.StringWriter()
Server.Execute("Login.aspx", writer, True)
Response.Write("<h3>Please Login:</h3><br />" + writer.ToString())
End Sub
備註
Execute該方法在完成指定虛擬路徑執行後,繼續執行原始請求。 該 Transfer 方法會無條件地將執行轉移到另一個處理器。
ASP.NET 不會驗證目前使用者是否有權查看該 Execute 方法所提供資源。 雖然 ASP.NET 授權與認證邏輯會在原始資源處理器被呼叫前執行,ASP.NET 直接呼叫方法所指示 Execute 的處理器,且不會為新資源重跑認證與授權邏輯。 如果您的應用程式安全政策要求用戶端必須擁有適當的授權才能存取資源,應用程式應強制重新授權或提供自訂的存取控制機制。
你可以用方法 Redirect 強制重新授權,而不是用方法 Execute 。 Redirect 執行客戶端重定向,瀏覽器請求新資源。 由於此重定向是新進入系統的請求,因此必須遵守網際網路資訊服務(IIS)及 ASP.NET 安全政策的所有認證與授權邏輯。
你可以透過在應用程式呼叫IsInRole該方法前,加入使用Execute該方法的自訂授權方法來驗證使用者是否有權限查看該資源。
另請參閱
適用於
Execute(IHttpHandler, TextWriter, Boolean)
在當前請求的情境中執行指定的虛擬路徑處理器。 A TextWriter 會擷取執行處理器的輸出,而布林參數則指定是否清除 QueryString 和 Form 集合。
public:
void Execute(System::Web::IHttpHandler ^ handler, System::IO::TextWriter ^ writer, bool preserveForm);
public void Execute(System.Web.IHttpHandler handler, System.IO.TextWriter writer, bool preserveForm);
member this.Execute : System.Web.IHttpHandler * System.IO.TextWriter * bool -> unit
Public Sub Execute (handler As IHttpHandler, writer As TextWriter, preserveForm As Boolean)
參數
- handler
- IHttpHandler
是實作 IHttpHandler 以傳輸當前請求的 HTTP 處理器。
- writer
- TextWriter
用來 TextWriter 捕捉輸出。
- preserveForm
- Boolean
true保存QueryString與Form收藏false;清理QueryStringForm收藏。
例外狀況
執行由 指定的 handler處理器時發生錯誤。
參數 handler 為 null。
備註
你可以撰寫自訂的 HTTP 處理器,以處理任何符合通用語言規範(CLS)的語言中特定、預定義的 HTTP 請求類型。 在 HTTP 處理程式類別中定義的可執行程式碼,而非傳統的 ASP(也稱為經典 ASP)頁面或 ASP.NET 頁面,會回應這些特定請求。 HTTP 處理器允許與執行網際網路資訊服務(IIS)的網頁伺服器的低階請求與回應服務互動,並提供類似 ISAPI 擴充功能但程式設計更簡單的功能。
ASP.NET 無法驗證目前使用者是否被授權查看由 Execute 方法所傳送的資源。 雖然 ASP.NET 授權與認證邏輯會在原始資源處理器被呼叫前執行,ASP.NET 會直接呼叫由 Execute 方法指示的處理器,且不會重新執行新資源的認證與授權邏輯。 如果您的應用程式的安全政策要求用戶端必須擁有適當的授權才能存取該資源,應用程式應強制重新授權或提供自訂的存取控制機制。
你可以用方法 Redirect 強制重新授權,而不是用方法 Execute 。 它 Redirect 會執行客戶端重定向,瀏覽器在此請求新的資源。 由於此重定向是新進入系統的請求,因此必須遵守 IIS 與 ASP.NET 安全政策的所有認證與授權邏輯。
你可以透過在應用程式呼叫IsInRole該方法前,加入使用Execute該方法的自訂授權方法來驗證使用者是否有權限查看該資源。