Freigeben über


RequestValidator Klasse

Definition

Definiert Basismethoden für benutzerdefinierte Anforderungsvalidierung.

public ref class RequestValidator
public class RequestValidator
type RequestValidator = class
Public Class RequestValidator
Vererbung
RequestValidator

Beispiele

Im folgenden Beispiel wird gezeigt, wie Sie einen benutzerdefinierten Anforderungs validator erstellen, der nur eine bestimmte Zeichenfolge für Abfragezeichenfolgenwerte verwendet werden kann.

using System;
using System.Web;
using System.Web.Util;

public class CustomRequestValidation : RequestValidator
{
    public CustomRequestValidation() { }

    protected override bool IsValidRequestString(
        HttpContext context, string value,
        RequestValidationSource requestValidationSource, string collectionKey,
        out int validationFailureIndex)
      {
        validationFailureIndex = -1;  //Set a default value for the out parameter.

        //This application does not use RawUrl directly so you can ignore the check.
        if (requestValidationSource == RequestValidationSource.RawUrl)
            return true;

        //Allow the query-string key data to have a value that is formatted like XML.
        if ((requestValidationSource == RequestValidationSource.QueryString) &&
            (collectionKey == "data"))
        {
            //The querystring value "<example>1234</example>" is allowed.
            if (value == "<example>1234</example>")
            {
                validationFailureIndex = -1;
                return true;
            }
            else
                //Leave any further checks to ASP.NET.
                return base.IsValidRequestString(context, value,
                requestValidationSource,
                collectionKey, out validationFailureIndex);
        }
        //All other HTTP input checks are left to the base ASP.NET implementation.
        else
        {
            return base.IsValidRequestString(context, value, requestValidationSource,
                                             collectionKey, out validationFailureIndex);
        }
    }
}
Imports System.Web
Imports System.Web.Util

Public Class CustomRequestValidation
    Inherits RequestValidator

    Public Sub New()
    End Sub

    Protected Overloads Overrides Function IsValidRequestString(ByVal context As HttpContext, ByVal value As String, _
            ByVal requestValidationSource__1 As RequestValidationSource, _
            ByVal collectionKey As String, _
            ByRef validationFailureIndex As Integer) As Boolean
        validationFailureIndex = -1 ' Set a default value for the out parameter.

        ' This application does not use RawUrl directly so you can ignore the check.
        If requestValidationSource__1 = RequestValidationSource.RawUrl Then
            Return True
        End If

        ' Allow the query-string key data to have a value that is formated like XML.
        If (requestValidationSource__1 = RequestValidationSource.QueryString) AndAlso (collectionKey = "data") Then

            ' The query-string value "<example>1234</example>" is allowed.
            If value = "<example>1234</example>" Then
                validationFailureIndex = -1
                Return True
            Else
                ' Leave any further checks to ASP.NET.
                Return MyBase.IsValidRequestString(context, value,
                     requestValidationSource__1, collectionKey,
                     validationFailureIndex)
            End If
        Else
            ' All other HTTP input checks are left to the base ASP.NET implementation.
            Return MyBase.IsValidRequestString(context, value, requestValidationSource__1, collectionKey, validationFailureIndex)
        End If
    End Function
End Class

Im folgenden Beispiel wird gezeigt, wie Sie ASP.NET konfigurieren, um den benutzerdefinierten Gültigator in der Web.config-Datei für eine Anwendung zu verwenden.

<system.web>  
  <httpRuntime requestValidationType="CustomRequestValidation" />  
</system.web>  

Hinweise

Standardmäßig überprüft ASP.NET Anforderungen erst, wenn Code explizit einen Wert aus der Anforderung anfordert. Beispielsweise überprüft ASP.NET keine Abfragezeichenfolgenwerte, bis Code auf die QueryString Auflistung zugreift. Standardmäßig überprüft ASP.NET auch keine Arten von Anforderungsdaten, z. B. Formularwerte, Cookies, die Namen von Dateien, die mithilfe von HTTP hochgeladen wurden, und den Wert der RawUrl Eigenschaft.

Die RequestValidator Klasse ist eine Basisklasse, die Sie implementieren können, um eine benutzerdefinierte Anforderungsüberprüfung bereitzustellen. Durch die Implementierung dieser Klasse können Sie bestimmen, wann die Überprüfung erfolgt und welche Art von Anforderungsdaten zur Überprüfung ausgeführt werden soll.

Standardmäßig stellt ASP.NET websiteübergreifende Skriptprüfung (XSS) bereit. Sie können jedoch die Anforderungsüberprüfungslogik ergänzen oder ersetzen, die in ASP.NET bereitgestellt wird, indem Sie eine benutzerdefinierte Implementierung der XSS erstellen. Sie können beispielsweise eine benutzerdefinierte Anforderungsüberprüfungsimplementierung schreiben, die zusätzlich zur Überprüfung auf XSS-Angriffe nach SQL Injektionsangriffen sucht.

Um eine benutzerdefinierte Anforderungsüberprüfung zu erstellen, schreiben Sie eine benutzerdefinierte Klasse, die von der RequestValidator Basisklasse abgeleitet wird. Anschließend konfigurieren Sie ASP.NET, um den benutzerdefinierten Anforderungs validator in der datei Web.config Anwendungsebene zu verwenden. Sie können die benutzerdefinierte Klasse im ordner App_Code, in einer kompilierten Klassenbibliothek im Bin-Ordner oder in einer kompilierten Klassenbibliothek im GAC einfügen.

Hinweis

Nur ein benutzerdefinierter Anforderungsüberprüfungstyp kann für eine Anwendung konfiguriert werden. Es ist nicht möglich, einen anderen Anforderungsüberprüfungstyp für einzelne virtuelle Pfade oder Seiten zu konfigurieren.

Konstruktoren

RequestValidator()

Initialisiert eine neue Instanz der RequestValidator-Klasse.

Eigenschaften

Current

Ruft einen Verweis auf die aktuelle RequestValidator-Instanz ab, die in einer Anwendung verwendet wird, ab oder legt ihn fest.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
InvokeIsValidRequestString(HttpContext, String, RequestValidationSource, String, Int32)

Bietet eine öffentliche Methode, die die geschützte IsValidRequestString(HttpContext, String, RequestValidationSource, String, Int32)-Methode aufruft , um HTTP-Anforderungsdaten zu überprüfen.

IsValidRequestString(HttpContext, String, RequestValidationSource, String, Int32)

Überprüft eine Zeichenfolge, die HTTP-Anforderungsdaten enthält.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für

Siehe auch