HttpEncoder 類別

定義

提供編碼和解碼邏輯。

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

備註

類別包含 、 和 HttpResponseHeaderHttpUtilityHttpServerUtility 類別中方法所使用的編碼和解碼邏輯。

您可以從 類別繼承 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 的子區段。

適用於

另請參閱