共用方式為


HttpEncoder 類別

定義

提供編碼與解碼邏輯。

public ref class HttpEncoder
public class HttpEncoder
type HttpEncoder = class
Public Class HttpEncoder
繼承
HttpEncoder
衍生

備註

該類別包含編碼與解碼邏輯,這些邏輯由類別中的方法使用,如 HttpUtilityHttpServerUtilityHttpResponseHeader和 。

你可以繼承該 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 的一個子區段。

適用於

另請參閱