HttpEncoder 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供编码和解码逻辑。
public ref class HttpEncoder
public class HttpEncoder
type HttpEncoder = class
Public Class HttpEncoder
- 继承
-
HttpEncoder
- 派生
注解
类包含 、、 和 等HttpUtilityHttpServerUtility类中的方法使用的编码和HttpResponseHeader解码逻辑。
可以从 类继承 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 的子节进行编码。 |