RequestValidationSource Výčet

Definice

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
RequestValidationSource

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

Platí pro

Viz také