RequestValidationSource Enumeración
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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. |