HttpEncoder 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供編碼與解碼邏輯。
public ref class HttpEncoder
public class HttpEncoder
type HttpEncoder = class
Public Class HttpEncoder
- 繼承
-
HttpEncoder
- 衍生
備註
該類別包含編碼與解碼邏輯,這些邏輯由類別中的方法使用,如 HttpUtility、 HttpServerUtility、 HttpResponseHeader和 。
你可以繼承該 HttpEncoder 類別並覆寫其行為,自訂 ASP.NET 的預設編碼與解碼行為。 接著你設定 EncoderType 該類別的屬性 HttpRuntimeSection 來配置你的自訂類別。
一個由衍生 HttpEncoder 的自訂編碼與解碼類別可以覆寫內建的編碼與解碼行為 ASP.NET 或只改變部分部分。
你可以在 ASP.NET 中設定自訂編碼類型,以取代或補充以下編碼行為:
HTML 編碼
HTML 屬性編碼
URL 編碼
URL 路徑編碼
HTTP 標頭名稱與標頭值編碼
預設情況下,ASP.NET 應用程式會設定為所有輸出編碼都使用 該 AntiXssEncoder 類型。
以下一個應用程式層級 Web.config 檔案的範例展示了 ASP.NET 應用程式的型別設定 AntiXssEncoder 方式:
<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 向 IIS 傳送 HTTP 標頭時,ASP.NET 沒有對未處理異常的配置。 因此,標準 ASP.NET 錯誤頁面會被渲染(若設定允許顯示此頁面)。
建構函式
| 名稱 | Description |
|---|---|
| HttpEncoder() |
初始化 HttpEncoder 類別的新執行個體。 |
屬性
| 名稱 | Description |
|---|---|
| Current |
取得或設定 HttpEncoder 應用程式中將使用的型別。 |
| Default |
會得到 ASP.NET 預設編碼器的參考。 |
方法
| 名稱 | Description |
|---|---|
| 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 的一個子區段。 |