RequestValidator Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Definierar basmetoder för validering av anpassade begäranden.
public ref class RequestValidator
public class RequestValidator
type RequestValidator = class
Public Class RequestValidator
- Arv
-
RequestValidator
Exempel
I följande exempel visas hur du skapar en validator för anpassad begäran som endast tillåter att en specifik sträng används för frågesträngsvärden.
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
I följande exempel visas hur du konfigurerar ASP.NET att använda den anpassade validatorn i filen Web.config för ett program.
<system.web>
<httpRuntime requestValidationType="CustomRequestValidation" />
</system.web>
Kommentarer
Som standard verifierar ASP.NET inte begäranden förrän koden uttryckligen begär ett värde från begäran. ASP.NET validerar till exempel inte frågesträngsvärden förrän koden har åtkomst till samlingen QueryString. Som standard verifierar ASP.NET inte heller vissa typer av begärandedata, till exempel formulärvärden, cookies, namnen på filer som har laddats upp med HTTP och värdet för egenskapen RawUrl.
Klassen RequestValidator är en basklass som du kan implementera för att tillhandahålla verifiering av anpassade begäranden. Genom att implementera den här klassen kan du avgöra när valideringen sker och vilken typ av begärandedata som ska utföras.
Som standard tillhandahåller ASP.NET XSS-kontroller (cross-site scripting). Du kan dock komplettera eller ersätta den valideringslogik för begäran som tillhandahålls i ASP.NET genom att skapa en anpassad implementering av XSS. Du kan till exempel skriva en implementering av validering av anpassade begäranden som söker efter SQL-inmatningsattacker förutom att söka efter XSS-attacker.
Om du vill skapa validering av anpassade begäranden skriver du en anpassad klass som härleds från basklassen RequestValidator . Sedan konfigurerar du ASP.NET att använda validatorn för anpassad begäran i Web.config-filen på programnivå. Du kan placera den anpassade klassen i mappen App_Code, i ett kompilerat klassbibliotek i mappen Bin eller i ett kompilerat klassbibliotek i GAC.
Note
Endast en valideringstyp för anpassade begäranden kan konfigureras för ett program. Det går inte att konfigurera en annan typ av validering av begäranden för enskilda virtuella sökvägar eller sidor.
Konstruktorer
| Name | Description |
|---|---|
| RequestValidator() |
Initierar en ny instans av RequestValidator klassen. |
Egenskaper
| Name | Description |
|---|---|
| Current |
Hämtar eller anger en referens till den aktuella RequestValidator instansen som ska användas i ett program. |
Metoder
| Name | Description |
|---|---|
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| InvokeIsValidRequestString(HttpContext, String, RequestValidationSource, String, Int32) |
Tillhandahåller en offentlig metod som anropar den skyddade IsValidRequestString(HttpContext, String, RequestValidationSource, String, Int32) metoden för att verifiera HTTP-begärandedata. |
| IsValidRequestString(HttpContext, String, RequestValidationSource, String, Int32) |
Verifierar en sträng som innehåller HTTP-begärandedata. |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |