RequestValidationSource Enumeración

Definición

Especifica qué tipo de datos de solicitud HTTP se van a validar.

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

Campos

Nombre Valor Description
QueryString 0

Cadena de consulta.

Form 1

Valores de formulario.

Cookies 2

Las cookies de solicitud.

Files 3

Archivo cargado.

RawUrl 4

Dirección URL sin formato. (Parte de una dirección URL después del dominio).

Path 5

Ruta de acceso virtual.

PathInfo 6

Cadena HTTP PathInfo , que es una extensión a una ruta de acceso url.

Headers 7

Cabeceras de solicitud.

Ejemplos

En el ejemplo siguiente se muestra cómo crear una clase de validador de solicitud 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 IsValidRequestString para validar una solicitud, ASP.NET pasa un parámetro requestValidationSource para especificar el origen de los datos que se validan. La RequestValidationSource enumeración se usa para especificar el origen o el tipo de datos de solicitud que se están validando. 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 revertir a la implementación de validación de solicitudes base para las entradas HTTP si no desea validar mediante lógica personalizada.

En la tabla siguiente se muestra cómo se interpreta el valor del collectionKey parámetro y value del RequestValidator.IsValidRequestString método para cada miembro de la 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 de formulario de la colección Valor del parámetro de formulario de la colección.
Headers Nombre de un encabezado HTTP en la colección. Valor del encabezado HTTP de la colección.
Path null (Path no es una colección de valores). Valor del campo Ruta de acceso.
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