Partager via


RequestValidationSource Énumération

Définition

Spécifie le genre de données de requête HTTP à valider.

public enum class RequestValidationSource
public enum RequestValidationSource
type RequestValidationSource = 
Public Enum RequestValidationSource
Héritage
RequestValidationSource

Champs

Cookies 2

Cookies de requête.

Files 3

Fichier téléchargé.

Form 1

Valeurs de formulaire.

Headers 7

En-têtes de la requête.

Path 5

Chemin d'accès virtuel.

PathInfo 6

Chaîne HTTP PathInfo qui est une extension d'un chemin d'accès d'URL.

QueryString 0

Chaîne de requête.

RawUrl 4

URL brute. (Partie d'une URL figurant après le domaine.)

Exemples

L’exemple suivant montre comment créer une classe de validateur de requête personnalisée qui autorise uniquement une chaîne spécifique pour les valeurs de chaîne de requête.

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);  
        }  
    }  
}  

l’exemple suivant montre comment configurer ASP.NET pour utiliser le validateur personnalisé.

<httpRuntime requestValidationType="CustomRequestValidation" />  

Remarques

Vous pouvez créer un type de validation de requête personnalisé en implémentant le RequestValidator type. lorsque ASP.NET appelle la IsValidRequestString méthode pour valider une demande, ASP.NET passe un requestValidationSource paramètre pour spécifier la source des données en cours de validation. L' RequestValidationSource énumération est utilisée pour spécifier la source ou le type de données de requête en cours de validation. L’énumération indique le type d’entrée HTTP qui est passé dans le value paramètre de la IsValidRequestString méthode. Vous pouvez utiliser l’énumération pour revenir à l’implémentation de validation des demandes de base pour les entrées HTTP si vous ne souhaitez pas valider à l’aide d’une logique personnalisée.

Le tableau suivant montre comment la valeur du collectionKey paramètre et value de la RequestValidator.IsValidRequestString méthode est interprétée pour chaque membre de l' RequestValidationSource énumération.

Membre de l’énumération Paramètre collectionKey Paramètre value
Cookies Nom du cookie dans la collection. Valeur dans la collection.
Files Nom du fichier téléchargé dans la collection. Valeur du fichier téléchargé dans la collection.
Form Nom du paramètre de formulaire dans la collection Valeur du paramètre de formulaire dans la collection.
Headers Nom d’un en-tête HTTP dans la collection. Valeur de l’en-tête HTTP dans la collection.
Path null ( Path n’est pas une collection de valeurs). Valeur du champ de chemin d’accès.
PathInfo null ( PathInfo n’est pas une collection de valeurs). Valeur du champ PathInfo.
QueryString Nom du paramètre de chaîne de requête dans la collection. Valeur du paramètre de chaîne de requête dans la collection.
RawUrl null ( RawUrl n’est pas une collection de valeurs.) Valeur du champ RawUrl.

S’applique à

Voir aussi