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 type de données de requête HTTP à valider.
public enum class RequestValidationSource
public enum RequestValidationSource
type RequestValidationSource =
Public Enum RequestValidationSource
- Héritage
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. |