HttpEncoder 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供編碼和解碼邏輯。
public ref class HttpEncoder
public class HttpEncoder
type HttpEncoder = class
Public Class HttpEncoder
- 繼承
-
HttpEncoder
- 衍生
備註
類別包含 、 和 HttpResponseHeader 等 HttpUtilityHttpServerUtility 類別中方法所使用的編碼和解碼邏輯。
您可以從 類別繼承 HttpEncoder 並覆寫其行為,以自訂 ASP.NET 的預設編碼和解碼行為。 接著, EncoderType 您可以設定 類別的 HttpRuntimeSection 屬性,以設定自訂類別。
衍生自 HttpEncoder 之編碼和解碼的自訂類別可以覆寫內建 ASP.NET 編碼和解碼行為,或只變更其選取層面。
您可以在 ASP.NET 中設定 的自訂編碼類型,以取代或補充下列編碼行為:
HTML 編碼
HTML 屬性編碼
URL 編碼
URL 路徑編碼
HTTP 標頭名稱和標頭值編碼
根據預設,ASP.NET 應用程式會設定為使用 AntiXssEncoder 所有輸出編碼的類型。
下列來自應用層級Web.config檔案的範例示範如何 AntiXssEncoder 為 ASP.NET 應用程式設定類型:
<httpRuntime requestValidationMode="4.5" encoderType="System.Web.Security.AntiXss.AntiXssEncoder, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
範例中的組態設定會將 AntiXssEncoder 類別設定為在應用程式中執行所有輸出編碼。 如需詳細資訊,請參閱 類別概 AntiXssEncoder 觀。
給繼承者的注意事項
當您建立自訂編碼器類別並覆寫基類的基底方法時,衍生的編碼器可能會從任何覆寫的方法擲回例外狀況。 不過,在下列情況下擲回這類例外狀況可能會導致 ASP.NET 發生非預期的行為:
如果 ASP.NET 轉譯錯誤頁面,是因為從自訂編碼器擲回的未處理例外狀況所造成,ASP.NET 不會嘗試呼叫自訂編碼器來編碼其錯誤輸出。 這可避免遞迴錯誤狀況。
當 ASP.NET 將 HTTP 標頭傳送至 IIS 時,ASP.NET 沒有針對未處理的例外狀況進行布建。 因此,如果組態設定允許顯示此頁面) ,則會 (轉譯標準 ASP.NET 錯誤頁面。
建構函式
HttpEncoder() |
初始化 HttpEncoder 類別的新執行個體。 |
屬性
Current |
取得或設定將在應用程式中使用的 HttpEncoder 型別。 |
Default |
取得 ASP.NET 預設編碼器的參考。 |
方法
Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
GetHashCode() |
做為預設雜湊函式。 (繼承來源 Object) |
GetType() |
取得目前執行個體的 Type。 (繼承來源 Object) |
HeaderNameValueEncode(String, String, String, String) |
將標頭名稱及值編碼為可當做 HTTP 標頭使用的字串。 |
HtmlAttributeEncode(String, TextWriter) |
將輸入值編碼為字串,此字串可插入至使用單或雙引號分隔的 HTML 屬性中。 |
HtmlDecode(String, TextWriter) |
將 HTML 編碼字串中的值解碼。 |
HtmlEncode(String, TextWriter) |
將字串編碼為 HTML 編碼字串。 |
JavaScriptStringEncode(String) |
編碼字串。 |
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
ToString() |
傳回代表目前物件的字串。 (繼承來源 Object) |
UrlEncode(Byte[], Int32, Int32) |
將 URL 中不允許的字元陣列編碼為對等的十六進位字元實體。 |
UrlPathEncode(String) |
編碼 URL 的子區段。 |