RequestValidator Classe
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.
Définit les méthodes de base pour la validation de requête personnalisée.
public ref class RequestValidator
public class RequestValidator
type RequestValidator = class
Public Class RequestValidator
- Héritage
-
RequestValidator
Exemples
L’exemple suivant montre comment créer un validateur de requête personnalisé qui autorise uniquement l’utilisation d’une chaîne spécifique pour les valeurs de chaîne de requête.
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)
{
validationFailureIndex = -1; //Set a default value for the out parameter.
//This application does not use RawUrl directly so you can ignore the check.
if (requestValidationSource == RequestValidationSource.RawUrl)
return true;
//Allow the query-string key data to have a value that is formatted like XML.
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 are left to the base ASP.NET implementation.
else
{
return base.IsValidRequestString(context, value, requestValidationSource,
collectionKey, out validationFailureIndex);
}
}
}
Imports System.Web
Imports System.Web.Util
Public Class CustomRequestValidation
Inherits RequestValidator
Public Sub New()
End Sub
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.
If requestValidationSource__1 = RequestValidationSource.RawUrl Then
Return True
End If
' Allow the query-string key data to have a value that is formated like XML.
If (requestValidationSource__1 = RequestValidationSource.QueryString) AndAlso (collectionKey = "data") Then
' The query-string 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 are left to the base ASP.NET implementation.
Return MyBase.IsValidRequestString(context, value, requestValidationSource__1, collectionKey, validationFailureIndex)
End If
End Function
End Class
L’exemple suivant montre comment configurer ASP.NET pour utiliser le validateur personnalisé dans le fichier Web.config d’une application.
<system.web>
<httpRuntime requestValidationType="CustomRequestValidation" />
</system.web>
Remarques
Par défaut, ASP.NET ne valide pas les demandes tant que le code ne demande pas explicitement une valeur de la requête. Par exemple, ASP.NET ne valide pas les valeurs de chaîne de requête tant que le code n’accède pas à la QueryString collection. Par défaut, ASP.NET ne valide pas non plus certains types de données de requête, comme les valeurs de formulaire, les cookies, les noms de fichiers qui ont été chargés à l’aide de HTTP et la valeur de la RawUrl propriété.
La RequestValidator classe est une classe de base que vous pouvez implémenter pour fournir une validation de demande personnalisée. En implémentant cette classe, vous pouvez déterminer quand la validation se produit et le type de données de requête sur lequel effectuer la validation.
Par défaut, ASP.NET fournit des vérifications de script intersites (XSS). Toutefois, vous pouvez compléter ou remplacer la logique de validation de requête fournie dans ASP.NET en créant une implémentation personnalisée du XSS. Par exemple, vous pouvez écrire une implémentation de validation de requête personnalisée qui analyse les attaques par injection SQL en plus de vérifier les attaques XSS.
Pour créer une validation de requête personnalisée, vous écrivez une classe personnalisée qui dérive de la RequestValidator classe de base. Vous configurez ensuite ASP.NET pour utiliser le validateur de requête personnalisé dans le fichier de Web.config au niveau de l’application. Vous pouvez placer la classe personnalisée dans le dossier App_Code, dans une bibliothèque de classes compilée dans le dossier Bin ou dans une bibliothèque de classes compilée dans le GAC.
Note
Un seul type de validation de requête personnalisé peut être configuré pour une application. Il n’est pas possible de configurer un type de validation de requête différent pour des chemins d’accès virtuels ou des pages individuels.
Constructeurs
| Nom | Description |
|---|---|
| RequestValidator() |
Initialise une nouvelle instance de la classe RequestValidator. |
Propriétés
| Nom | Description |
|---|---|
| Current |
Obtient ou définit une référence à l’instance actuelle RequestValidator qui sera utilisée dans une application. |
Méthodes
| Nom | Description |
|---|---|
| Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
| GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| InvokeIsValidRequestString(HttpContext, String, RequestValidationSource, String, Int32) |
Fournit une méthode publique qui appelle la méthode protégée IsValidRequestString(HttpContext, String, RequestValidationSource, String, Int32) pour valider les données de requête HTTP. |
| IsValidRequestString(HttpContext, String, RequestValidationSource, String, Int32) |
Valide une chaîne qui contient des données de requête HTTP. |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| ToString() |
Retourne une chaîne qui représente l’objet actuel. (Hérité de Object) |