RequestValidationSource Enumeração
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Especifica que tipo de dados de pedido HTTP validar.
public enum class RequestValidationSource
public enum RequestValidationSource
type RequestValidationSource =
Public Enum RequestValidationSource
- Herança
Campos
| Name | Valor | Description |
|---|---|---|
| QueryString | 0 | A cadeia de caracteres de consulta. |
| Form | 1 | Os valores da forma. |
| Cookies | 2 | Os biscoitos de pedido. |
| Files | 3 | O ficheiro carregado. |
| RawUrl | 4 | O URL bruto. (A parte de uma URL após o domínio.) |
| Path | 5 | O caminho virtual. |
| PathInfo | 6 | Uma string HTTP PathInfo , que é uma extensão para um caminho de URL. |
| Headers | 7 | Os cabeçalhos da solicitação. |
Exemplos
O exemplo seguinte mostra como criar uma classe de validador de pedidos personalizada que permite apenas uma string específica para valores de query string.
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 seguinte mostra como configurar o ASP.NET para usar o validador personalizado.
<httpRuntime requestValidationType="CustomRequestValidation" />
Observações
Pode criar um tipo de validação de pedido personalizado implementando o RequestValidator tipo. Quando ASP.NET chama o método IsValidRequestString para validar um pedido, ASP.NET passa um parâmetro requestValidationSource para especificar a origem dos dados a validar. A RequestValidationSource enumeração é usada para especificar a fonte ou tipo de dados de pedido que está a ser validado. A enumeração indica o tipo de entrada HTTP que é passada no value parâmetro do IsValidRequestString método. Pode usar a enumeração como forma de recorrer à implementação base de validação de pedidos para entradas HTTP se não quiser validar usando lógica personalizada.
A tabela seguinte mostra como o valor do collectionKey e value o parâmetro do RequestValidator.IsValidRequestString método são interpretados para cada membro da RequestValidationSource enumeração.
| Membro de enumeração |
collectionKey Parâmetro |
value Parâmetro |
|---|---|---|
Cookies |
O nome da bolacha na coleção. | O valor na coleção. |
Files |
O nome do ficheiro carregado na coleção. | O valor do ficheiro carregado na coleção. |
Form |
O nome do parâmetro da forma na coleção | O valor do parâmetro da forma 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 da cadeia de consulta na coleção. | O valor do parâmetro da cadeia de consulta na coleção. |
RawUrl |
null (RawUrl não é uma coleção de valores.) |
O valor do campo RawUrl. |