HttpRequestValidationException 类

定义

从客户端收到作为请求数据一部分的潜在恶意输入字符串时引发的异常。 此类不能被继承。

public ref class HttpRequestValidationException sealed : System::Web::HttpException
public sealed class HttpRequestValidationException : System.Web.HttpException
[System.Serializable]
public sealed class HttpRequestValidationException : System.Web.HttpException
type HttpRequestValidationException = class
    inherit HttpException
[<System.Serializable>]
type HttpRequestValidationException = class
    inherit HttpException
Public NotInheritable Class HttpRequestValidationException
Inherits HttpException
继承
属性

示例

下面的代码示例演示如何使用 HttpRequestValidationException检查恶意用户输入。

重要

此示例具有一个接受用户输入的文本框,这是一个潜在的安全威胁。 默认情况下,ASP.NET 网页验证用户输入是否不包含脚本或 HTML 元素。 有关详细信息,请参阅脚本侵入概述

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    void Button1_Click(object sender, EventArgs e)
    {
        Label1.Text = txt1.Text;
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox id="txt1" Runat="server" />
        <asp:Button ID="Button1" Runat="server" Text="Button" OnClick="Button1_Click" />
        <br /><br />You entered: <asp:Label ID="Label1" Runat="server" Text="Label" />.
    </div>
    </form>
</body>
</html>
<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Label1.Text = txt1.Text
    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox id="txt1" Runat="server" />
        <asp:Button ID="Button1" Runat="server" Text="Button" OnClick="Button1_Click" />
        <br /><br />You entered: <asp:Label ID="Label1" Runat="server" Text="Label" />.
    </div>
    </form>
</body>
</html>

注解

限制和验证用户输入在 Web 应用程序中至关重要,以防止依赖于恶意输入字符串的黑客攻击。 跨站点脚本攻击就是此类黑客攻击的一个示例。 其他类型的恶意或不需要的数据可以通过各种形式的输入在请求中传递。 通过限制在应用程序中低级别传递的数据类型,可以防止不良事件,即使使用代码的程序员没有使用适当的验证技术。

请求验证会检测潜在的恶意客户端输入,并引发此异常以中止请求的处理。 请求中止可能表示试图损害应用程序的安全性,例如跨站点脚本攻击。 强烈建议应用程序显式检查有关请求中止的所有输入。 但是,可以通过将 指令中的 @ Page 属性设置为 validateRequestfalse来禁用请求验证,如以下示例所示:

<%@ Page validateRequest="false" %>

若要禁用应用程序的请求验证,必须为应用程序修改或创建Web.config文件,并将 节的 pages 属性设置为 validateRequestfalse,如以下示例所示:

<configuration>
  <system.web>
    <pages validateRequest="false" />
  </system.web>
</configuration>

若要禁用服务器上的所有应用程序的请求验证,可以对 Machine.config 文件进行此修改。

注意

强烈建议应用程序显式检查它使用的所有输入,以及 ASP.NET 执行的请求验证。 请求验证功能无法捕获所有攻击,尤其是针对应用程序逻辑专门制作的攻击。

构造函数

HttpRequestValidationException()

创建 HttpRequestValidationException 类的新实例。

HttpRequestValidationException(String)

创建具有指定错误消息的新的 HttpRequestValidationException 异常。

HttpRequestValidationException(String, Exception)

使用指定的错误消息和内部异常(导致此异常的原因)的引用来初始化 HttpRequestValidationException 类的新实例。

属性

Data

获取键/值对的集合,这些键/值对提供有关该异常的其他用户定义信息。

(继承自 Exception)
ErrorCode

获取错误的 HRESULT

(继承自 ExternalException)
HelpLink

获取或设置指向与此异常关联的帮助文件链接。

(继承自 Exception)
HResult

获取或设置 HRESULT(一个分配给特定异常的编码数字值)。

(继承自 Exception)
InnerException

获取导致当前异常的 Exception 实例。

(继承自 Exception)
Message

获取描述当前异常的消息。

(继承自 Exception)
Source

获取或设置导致错误的应用程序或对象的名称。

(继承自 Exception)
StackTrace

获取调用堆栈上的即时框架字符串表示形式。

(继承自 Exception)
TargetSite

获取引发当前异常的方法。

(继承自 Exception)
WebEventCode

获取与 HTTP 异常相关联的事件代码。

(继承自 HttpException)

方法

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetBaseException()

当在派生类中重写时,返回 Exception,它是一个或多个并发的异常的根本原因。

(继承自 Exception)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetHtmlErrorMessage()

获取要返回给客户端的 HTML 错误消息。

(继承自 HttpException)
GetHttpCode()

获取要返回给客户端的 HTTP 响应状态代码。

(继承自 HttpException)
GetObjectData(SerializationInfo, StreamingContext)

获取关于异常的信息并将其添加到 SerializationInfo 对象。

(继承自 HttpException)
GetType()

获取当前实例的运行时类型。

(继承自 Exception)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()

返回一个字符串,该字符串包含错误的 HRESULT。

(继承自 ExternalException)

事件

SerializeObjectState
已过时.

当异常被序列化用来创建包含有关该异常的徐列出数据的异常状态对象时会出现该问题。

(继承自 Exception)

适用于