Share via


RequestValidationSource Enumeración

Definición

Especifica la clase de datos de la solicitud HTTP que se va a validar.

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

Campos

Cookies 2

Cookies de la solicitud.

Files 3

Archivo cargado.

Form 1

Valores del formulario.

Headers 7

Encabezados de solicitud.

Path 5

Ruta de acceso virtual.

PathInfo 6

Cadena HTTP PathInfo, que es una extensión de una ruta de acceso de la dirección URL.

QueryString 0

La cadena de consulta.

RawUrl 4

Dirección URL original. (Parte de una dirección URL que va detrás del dominio).

Ejemplos

En el ejemplo siguiente se muestra cómo crear una clase de validador de solicitudes personalizada que solo permite una cadena específica para los valores de cadena 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);  
        }  
    }  
}  

En el ejemplo siguiente se muestra cómo configurar ASP.NET para usar el validador personalizado.

<httpRuntime requestValidationType="CustomRequestValidation" />  

Comentarios

Puede crear un tipo de validación de solicitud personalizado implementando el RequestValidator tipo . Cuando ASP.NET llama al método para validar una solicitud, ASP.NET pasa un parámetro para especificar el origen IsValidRequestString de los datos que se requestValidationSource validan. La RequestValidationSource enumeración se usa para especificar el origen o el tipo de datos de solicitud que se validan. La enumeración indica el tipo de entrada HTTP que se pasa en el value parámetro del IsValidRequestString método . Puede usar la enumeración como una manera de volver a la implementación de validación de solicitudes base para las entradas HTTP si no desea realizar la validación mediante lógica personalizada.

En la tabla siguiente se muestra cómo se interpreta el valor del parámetro y del método collectionKey para cada miembro de la value RequestValidator.IsValidRequestString RequestValidationSource enumeración .

Miembro de enumeración Parámetro collectionKey Parámetro value
Cookies Nombre de la cookie de la colección. Valor de la colección.
Files Nombre del archivo cargado en la colección. Valor del archivo cargado en la colección.
Form Nombre del parámetro form de la colección Valor del parámetro form de la colección.
Headers Nombre de un encabezado HTTP de la colección. Valor del encabezado HTTP de la colección.
Path null ( Path no es una colección de valores). Valor del campo Path.
PathInfo null ( PathInfo no es una colección de valores). Valor del campo PathInfo.
QueryString Nombre del parámetro query-string de la colección. Valor del parámetro query-string de la colección.
RawUrl null ( RawUrl no es una colección de valores). Valor del campo RawUrl.

Se aplica a

Consulte también