通过


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 文件中的以下示例显示了如何 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 的子部分进行编码。

适用于

另请参阅