RequestValidator Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Definieert basismethoden voor validatie van aangepaste aanvragen.
public ref class RequestValidator
public class RequestValidator
type RequestValidator = class
Public Class RequestValidator
- Overname
-
RequestValidator
Voorbeelden
In het volgende voorbeeld ziet u hoe u een aangepaste aanvraagvalidator maakt waarmee alleen een specifieke tekenreeks kan worden gebruikt voor queryreekswaarden.
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
In het volgende voorbeeld ziet u hoe u ASP.NET configureert voor het gebruik van de aangepaste validator in het Web.config-bestand voor een toepassing.
<system.web>
<httpRuntime requestValidationType="CustomRequestValidation" />
</system.web>
Opmerkingen
Standaard valideert ASP.NET aanvragen pas nadat code expliciet een waarde van de aanvraag aanvraagt. ASP.NET valideert bijvoorbeeld geen waarden voor queryreeksen totdat code toegang heeft tot de verzameling QueryString. Standaard valideert ASP.NET niet bepaalde typen aanvraaggegevens, zoals formulierwaarden, cookies, de namen van bestanden die zijn geüpload met HTTP en de waarde van de eigenschap RawUrl.
De RequestValidator klasse is een basisklasse die u kunt implementeren om aangepaste aanvraagvalidatie te bieden. Door deze klasse te implementeren, kunt u bepalen wanneer validatie plaatsvindt en op welk type aanvraaggegevens validatie moet worden uitgevoerd.
Standaard biedt ASP.NET xsS-controles (cross-site scripting). U kunt echter de aanvraagvalidatielogica die is opgegeven in ASP.NET aanvullen of vervangen door een aangepaste implementatie van de XSS te maken. U kunt bijvoorbeeld een aangepaste implementatie voor aanvraagvalidatie schrijven die scant op SQL-injectieaanvallen, naast het controleren op XSS-aanvallen.
Als u aangepaste aanvraagvalidatie wilt maken, schrijft u een aangepaste klasse die is afgeleid van de RequestValidator basisklasse. Vervolgens configureert u ASP.NET om de aangepaste aanvraagvalidator te gebruiken in het Web.config-bestand op toepassingsniveau. U kunt de aangepaste klasse in de App_Code-map plaatsen, in een gecompileerde klassebibliotheek in de map Bin of in een gecompileerde klassebibliotheek in de GAC.
Note
Er kan slechts één aangepast aanvraagvalidatietype worden geconfigureerd voor een toepassing. Het is niet mogelijk om een ander aanvraagvalidatietype te configureren voor afzonderlijke virtuele paden of pagina's.
Constructors
| Name | Description |
|---|---|
| RequestValidator() |
Initialiseert een nieuw exemplaar van de RequestValidator klasse. |
Eigenschappen
| Name | Description |
|---|---|
| Current |
Hiermee wordt een verwijzing opgehaald of ingesteld naar het huidige RequestValidator exemplaar dat wordt gebruikt in een toepassing. |
Methoden
| Name | Description |
|---|---|
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| InvokeIsValidRequestString(HttpContext, String, RequestValidationSource, String, Int32) |
Biedt een openbare methode waarmee de beveiligde methode wordt aangeroepen IsValidRequestString(HttpContext, String, RequestValidationSource, String, Int32) om HTTP-aanvraaggegevens te valideren. |
| IsValidRequestString(HttpContext, String, RequestValidationSource, String, Int32) |
Valideert een tekenreeks die HTTP-aanvraaggegevens bevat. |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |