RequestValidationSource Výčet
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Určuje, jaký druh dat požadavku HTTP se má ověřit.
public enum class RequestValidationSource
public enum RequestValidationSource
type RequestValidationSource =
Public Enum RequestValidationSource
- Dědičnost
Pole
Cookies | 2 | Soubory cookie žádosti. |
Files | 3 | Nahraný soubor. |
Form | 1 | Hodnoty formuláře. |
Headers | 7 | Hlavičky požadavku. |
Path | 5 | Virtuální cesta. |
PathInfo | 6 | Řetězec HTTP PathInfo , který je rozšířením cesty adresy URL. |
QueryString | 0 | Řetězec dotazu. |
RawUrl | 4 | Nezpracovaná adresa URL (Část adresy URL za doménou.) |
Příklady
Následující příklad ukazuje, jak vytvořit vlastní třídu validátoru požadavků, která umožňuje pouze konkrétní řetězec pro hodnoty řetězce dotazu.
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);
}
}
}
následující příklad ukazuje, jak nakonfigurovat ASP.NET pro použití vlastního validátoru.
<httpRuntime requestValidationType="CustomRequestValidation" />
Poznámky
Můžete vytvořit vlastní typ ověření žádosti implementující RequestValidator typ. když ASP.NET volá IsValidRequestString metodu pro ověření žádosti, ASP.NET předá requestValidationSource
parametr k určení zdroje ověřovaných dat. RequestValidationSourceVýčet se používá k určení zdroje nebo druhu ověřovaných dat požadavku. Výčet označuje typ vstupu HTTP, který se předává v value
parametru IsValidRequestString metody. Můžete použít výčet jako způsob, jak přejít zpět na základní implementaci ověřování požadavku pro vstupy HTTP, pokud nechcete ověřovat pomocí vlastní logiky.
Následující tabulka ukazuje, jak je collectionKey
value
interpretována hodnota parametru a RequestValidator.IsValidRequestString metody pro každý člen RequestValidationSource
výčtu.
Člen výčtu | collectionKey ukazatele |
value ukazatele |
---|---|---|
Cookies |
Název souboru cookie v kolekci. | Hodnota v kolekci |
Files |
Název nahraného souboru v kolekci. | Hodnota nahraného souboru v kolekci. |
Form |
Název parametru formuláře v kolekci | Hodnota parametru formuláře v kolekci |
Headers |
Název hlavičky protokolu HTTP v kolekci. | Hodnota hlavičky protokolu HTTP v kolekci. |
Path |
null (nejedná se Path o kolekci hodnot). |
Hodnota pole cesta |
PathInfo |
null (nejedná se PathInfo o kolekci hodnot). |
Hodnota pole PathInfo |
QueryString |
Název parametru řetězce dotazu v kolekci. | Hodnota parametru řetězce dotazu v kolekci. |
RawUrl |
null (nejedná se RawUrl o kolekci hodnot.) |
Hodnota pole RawUrl |