Partilhar via


RequestValidationSource Enumeração

Definição

Especifica o tipo de dados de solicitação HTTP para validar.

public enum class RequestValidationSource
public enum RequestValidationSource
type RequestValidationSource = 
Public Enum RequestValidationSource
Herança
RequestValidationSource

Campos

Cookies 2

Os cookies de solicitação.

Files 3

O arquivo carregado.

Form 1

Os valores de formulário.

Headers 7

Os cabeçalhos de solicitação.

Path 5

O caminho virtual.

PathInfo 6

Uma cadeia de caracteres PathInfo HTTP, que é uma extensão para um caminho de URL.

QueryString 0

A cadeia de caracteres de consulta.

RawUrl 4

A URL bruta. (A parte de uma URL depois do domínio.)

Exemplos

O exemplo a seguir mostra como criar uma classe de validador de solicitação personalizada que permite apenas uma cadeia de caracteres específica para valores de cadeia de caracteres de consulta.

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);  
        }  
    }  
}  

o exemplo a seguir mostra como configurar ASP.NET para usar o validador personalizado.

<httpRuntime requestValidationType="CustomRequestValidation" />  

Comentários

Você pode criar um tipo de validação de solicitação personalizada implementando o RequestValidator tipo. quando ASP.NET chama o IsValidRequestString método para validar uma solicitação, ASP.NET passa um requestValidationSource parâmetro para especificar a origem dos dados que estão sendo validados. A RequestValidationSource enumeração é usada para especificar a origem ou o tipo de dados de solicitação que está sendo validado. A enumeração indica o tipo de entrada HTTP que é passado no value parâmetro do IsValidRequestString método. Você pode usar a enumeração como uma maneira de fazer fallback para a implementação de validação de solicitação base para entradas HTTP se não quiser validar usando lógica personalizada.

A tabela a seguir mostra como o valor do collectionKey value parâmetro e do RequestValidator.IsValidRequestString método é interpretado para cada membro da RequestValidationSource enumeração.

Membro de enumeração Parâmetro collectionKey Parâmetro value
Cookies O nome do cookie na coleção. O valor na coleção.
Files O nome do arquivo carregado na coleção. O valor do arquivo carregado na coleção.
Form O nome do parâmetro de formulário na coleção O valor do parâmetro de formulário na coleção.
Headers O nome de um cabeçalho HTTP na coleção. O valor do cabeçalho HTTP na coleção.
Path null ( Path não é uma coleção de valores). O valor do campo caminho.
PathInfo null ( PathInfo não é uma coleção de valores). O valor do campo PathInfo.
QueryString O nome do parâmetro de cadeia de caracteres de consulta na coleção. O valor do parâmetro de cadeia de caracteres de consulta na coleção.
RawUrl null ( RawUrl não é uma coleção de valores.) O valor do campo RawUrl.

Aplica-se a

Confira também