Udostępnij za pośrednictwem


RequestValidationSource Wyliczenie

Definicja

Określa, jakiego rodzaju dane żądania HTTP mają być weryfikowane.

public enum class RequestValidationSource
public enum RequestValidationSource
type RequestValidationSource = 
Public Enum RequestValidationSource
Dziedziczenie
RequestValidationSource

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.

Dotyczy

Zobacz też