RequestValidationSource Enumeration

Definition

Gibt an, welche Art von HTTP-Anforderungsdaten überprüft werden sollen.

public enum class RequestValidationSource
public enum RequestValidationSource
type RequestValidationSource = 
Public Enum RequestValidationSource
Vererbung
RequestValidationSource

Felder

Name Wert Beschreibung
QueryString 0

Die Abfragezeichenfolge.

Form 1

Die Formularwerte.

Cookies 2

Die Anforderungscookies.

Files 3

Die hochgeladene Datei.

RawUrl 4

Die unformatierte URL. (Der Teil einer URL nach der Domäne.)

Path 5

Der virtuelle Pfad.

PathInfo 6

Eine HTTP-Zeichenfolge PathInfo , bei der es sich um eine Erweiterung für einen URL-Pfad handelt.

Headers 7

Die Anforderungsheader.

Beispiele

Das folgende Beispiel zeigt, wie Sie eine benutzerdefinierte Anforderungs validator-Klasse erstellen, die nur eine bestimmte Zeichenfolge für Abfragezeichenfolgenwerte zulässt.

Imports System.Web
Imports System.Web.Util

Public Class CustomRequestValidation
    Inherits RequestValidator

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 for RequestValidationSource.RawUrl.
    If requestValidationSource = RequestValidationSource.RawUrl Then
        Return True
    End If

    ' Allow the query-string key "data" to have an XML-like value.
    If (requestValidationSource = _
            (RequestValidationSource.QueryString) AndAlso _
            (collectionKey = "data") Then
        ' The querystring 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 fall back to
        ' the base ASP.NET implementation.
        Return MyBase.IsValidRequestString(context, value, _
            requestValidationSource__1, collectionKey, _
            validationFailureIndex)
    End If
End Function
End Class
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)
    {
        //Set a default value for the out parameter.
        validationFailureIndex = -1;

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

        // Allow the query-string key "data" to have an XML-like value.
        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 fall back to
        // the base ASP.NET implementation.
        else
        {
            return base.IsValidRequestString(context, value,
                requestValidationSource, collectionKey,
                out validationFailureIndex);
        }
    }
}

Das folgende Beispiel zeigt, wie Sie ASP.NET für die Verwendung des benutzerdefinierten Validators konfigurieren.

<httpRuntime requestValidationType="CustomRequestValidation" />

Hinweise

Sie können einen benutzerdefinierten Anforderungsüberprüfungstyp erstellen, indem Sie den RequestValidator Typ implementieren. Wenn ASP.NET die IsValidRequestString-Methode zum Überprüfen einer Anforderung aufruft, übergibt ASP.NET einen parameter requestValidationSource, um die Datenquelle anzugeben, die überprüft wird. Die RequestValidationSource Aufzählung wird verwendet, um die Quelle oder Art von Anforderungsdaten anzugeben, die überprüft werden. Die Enumeration gibt den Typ der HTTP-Eingabe an, die value im Parameter der IsValidRequestString Methode übergeben wird. Sie können die Enumeration als Möglichkeit verwenden, um auf die Implementierung der Basisanforderungsüberprüfung für HTTP-Eingaben zurückzugreifen, wenn Sie die Überprüfung nicht mithilfe benutzerdefinierter Logik durchführen möchten.

In der folgenden Tabelle wird gezeigt, wie der Wert und collectionKeyvalue der Parameter der RequestValidator.IsValidRequestString Methode für jedes Element der RequestValidationSource Enumeration interpretiert werden.

Enumerationselement collectionKey Parameter value Parameter
Cookies Der Name des Cookies in der Sammlung. Der Wert in der Auflistung.
Files Der Name der hochgeladenen Datei in der Sammlung. Der Wert der hochgeladenen Datei in der Sammlung.
Form Der Name des Formularparameters in der Auflistung Der Wert des Formularparameters in der Auflistung.
Headers Der Name eines HTTP-Headers in der Auflistung. Der Wert des HTTP-Headers in der Auflistung.
Path null (Path ist keine Sammlung von Werten). Der Wert des Felds "Pfad".
PathInfo null (PathInfo ist keine Sammlung von Werten). Der Wert des PathInfo-Felds.
QueryString Der Name des Abfragezeichenfolgenparameters in der Auflistung. Der Wert des Abfragezeichenfolgenparameters in der Auflistung.
RawUrl null (RawUrl ist keine Sammlung von Werten.) Der Wert des RawUrl-Felds.

Gilt für:

Weitere Informationen