Freigeben über


RequestValidationSource Enumeration

Definition

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

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

Felder

Cookies 2

Die Anforderungscookies.

Files 3

Die hochgeladene Datei.

Form 1

Die Formularwerte.

Headers 7

Die Anforderungsheader.

Path 5

Der virtuelle Pfad.

PathInfo 6

Eine HTTP-PathInfo-Zeichenfolge, bei der es sich um eine Erweiterung eines URL-Pfads handelt.

QueryString 0

Die Abfragezeichenfolge.

RawUrl 4

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

Beispiele

Das folgende Beispiel zeigt, wie sie eine benutzerdefinierte Anforderungs-Validierungsklasse 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);  
        }  
    }  
}  

Im folgenden Beispiel wird gezeigt, wie Sie die ASP.NET für die Verwendung des benutzerdefinierten Validierungssyntators konfigurieren.

<httpRuntime requestValidationType="CustomRequestValidation" />  

Hinweise

Sie können einen benutzerdefinierten Anforderungsvalidierungstyp erstellen, indem Sie den Typ RequestValidator implementieren. Wenn ASP.NET die -Methode aufruft, um eine Anforderung zu überprüfen, übergibt ASP.NET einen Parameter, um die Quelle der zu IsValidRequestString requestValidationSource überprüfenden Daten anzugeben. Die RequestValidationSource -Enumeration wird verwendet, um die Quelle oder Art der Anforderungsdaten anzugeben, die überprüft werden. Die -Enumeration gibt den Typ der HTTP-Eingabe an, die im value -Parameter der -Methode übergeben IsValidRequestString wird. Sie können die -Enumeration als Möglichkeit zum Fall fall back auf die Basisanforderungsvalidierungsimplementierung für HTTP-Eingaben verwenden, wenn Sie die Überprüfung nicht mit benutzerdefinierter Logik durchführen möchten.

Die folgende Tabelle zeigt, wie der Wert des -Parameters und des -Parameters der -Methode für jeden Member collectionKey value der RequestValidator.IsValidRequestString -Enumeration interpretiert RequestValidationSource wird.

Enumerationsmember collectionKey-Parameter value-Parameter
Cookies Der Name des Cookies in der Auflistung. Der Wert in der Auflistung.
Files Der Name der hochgeladenen Datei in der Auflistung. Der Wert der hochgeladenen Datei in der Auflistung.
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 Auflistung von Werten). Der Wert des Felds Pfad.
PathInfo null ( PathInfo ist keine Auflistung von Werten). Der Wert des Felds PathInfo.
QueryString Der Name des Abfragezeichenfolgenparameters in der Auflistung. Der Wert des Abfragezeichenfolgenparameters in der Auflistung.
RawUrl null ( RawUrl ist keine Auflistung von Werten.) Der Wert des Felds RawUrl.

Gilt für

Siehe auch