RequestValidationSource Énumération
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
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. |