RequestValidationSource Wyliczenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Określa, jakiego rodzaju dane żądania HTTP mają być weryfikowane.
public enum class RequestValidationSource
public enum RequestValidationSource
type RequestValidationSource =
Public Enum RequestValidationSource
- Dziedziczenie
Pola
Cookies | 2 | Pliki cookie żądania. |
Files | 3 | Przekazany plik. |
Form | 1 | Wartości formularza. |
Headers | 7 | Nagłówki żądania. |
Path | 5 | Ścieżka wirtualna. |
PathInfo | 6 | Ciąg PathInfo HTTP, który jest rozszerzeniem ścieżki adresu URL. |
QueryString | 0 | Ciąg zapytania. |
RawUrl | 4 | Pierwotny adres URL. (Część adresu URL po domenie). |
Przykłady
W poniższym przykładzie pokazano, jak utworzyć niestandardową klasę validatora żądań, która zezwala tylko na określony ciąg dla wartości ciągu zapytania.
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);
}
}
}
W poniższym przykładzie pokazano, jak skonfigurować ASP.NET do korzystania z niestandardowego sprawdzania.
<httpRuntime requestValidationType="CustomRequestValidation" />
Uwagi
Możesz utworzyć niestandardowy typ weryfikacji żądania, implementując RequestValidator typ . Gdy ASP.NET metodę w celu zweryfikowania żądania, ASP.NET przekazuje parametr w celu określenia źródła IsValidRequestString requestValidationSource
weryfikowanych danych. RequestValidationSourceWyliczenie służy do określania źródła lub rodzaju danych żądania, które są weryfikowane. Wyliczenie wskazuje typ danych wejściowych HTTP przekazywanych w value
parametrze IsValidRequestString metody . Możesz użyć wyliczenia jako sposobu powrotu do implementacji weryfikacji żądania podstawowego dla danych wejściowych HTTP, jeśli nie chcesz walidować przy użyciu logiki niestandardowej.
W poniższej tabeli pokazano, jak wartość i parametru metody są interpretowane collectionKey
value
dla każdego członka RequestValidator.IsValidRequestString RequestValidationSource
wyliczenia.
Wyliczenie, członek | collectionKey Parametr |
value Parametr |
---|---|---|
Cookies |
Nazwa pliku cookie w kolekcji. | Wartość w kolekcji. |
Files |
Nazwa przekazanego pliku w kolekcji. | Wartość przekazanego pliku w kolekcji. |
Form |
Nazwa parametru formularza w kolekcji | Wartość parametru formularza w kolekcji. |
Headers |
Nazwa nagłówka HTTP w kolekcji. | Wartość nagłówka HTTP w kolekcji. |
Path |
null ( Path nie jest kolekcją wartości). |
Wartość pola Ścieżka. |
PathInfo |
null ( PathInfo nie jest kolekcją wartości). |
Wartość pola PathInfo. |
QueryString |
Nazwa parametru ciągu zapytania w kolekcji. | Wartość parametru ciągu zapytania w kolekcji. |
RawUrl |
null ( RawUrl nie jest kolekcją wartości). |
Wartość pola RawUrl. |