RequestValidationSource Énumération

Définition

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

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

Champs

Nom Valeur Description
QueryString 0

Chaîne de requête.

Form 1

Valeurs du formulaire.

Cookies 2

Cookies de demande.

Files 3

Fichier chargé.

RawUrl 4

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

Path 5

Chemin d’accès virtuel.

PathInfo 6

Chaîne HTTP PathInfo , qui est une extension à un chemin d’URL.

Headers 7

En-têtes de requête.

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 méthode IsValidRequestString pour valider une requête, ASP.NET transmet un paramètre requestValidationSource pour spécifier la source des données en cours de validation. L’énumération RequestValidationSource 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 passé dans le value paramètre de la IsValidRequestString méthode. Vous pouvez utiliser l’énumération comme moyen de revenir à l’implémentation de validation de demande 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 et le collectionKeyvalue paramètre de la RequestValidator.IsValidRequestString méthode sont interprétés pour chaque membre de l’énumération RequestValidationSource .

Membre d’énumération collectionKey Paramètre value Paramètre
Cookies Nom du cookie dans la collection. Valeur de la collection.
Files Nom du fichier chargé dans la collection. Valeur du fichier 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 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