RequestValidationSource Перечисление
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Задает тип данных HTTP-запроса, которые необходимо проверить.
public enum class RequestValidationSource
public enum RequestValidationSource
type RequestValidationSource =
Public Enum RequestValidationSource
- Наследование
Поля
Cookies | 2 | Файлы cookie запроса. |
Files | 3 | Загруженные файлы. |
Form | 1 | Значения формы. |
Headers | 7 | Заголовки запроса. |
Path | 5 | Виртуальный путь. |
PathInfo | 6 | Строка HTTP PathInfo, представляющая собой расширение пути URL-адреса. |
QueryString | 0 | Строка запроса. |
RawUrl | 4 | Исходный URL-адрес. (Часть URL-адреса после домена). |
Примеры
В следующем примере показано, как создать класс проверяющего элемента управления пользовательского запроса, который допускает только определенную строку для значений строки запроса.
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);
}
}
}
в следующем примере показано, как настроить ASP.NET для использования настраиваемого проверяющего элемента управления.
<httpRuntime requestValidationType="CustomRequestValidation" />
Комментарии
Можно создать настраиваемый тип проверки запроса, реализовав RequestValidator тип. когда ASP.NET вызывает IsValidRequestString метод для проверки запроса, ASP.NET передает requestValidationSource
параметр, чтобы указать источник проверяемых данных. RequestValidationSourceПеречисление используется для указания источника или вида проверяемых данных запроса. Перечисление указывает тип входных данных HTTP, передаваемый в value
параметре IsValidRequestString метода. Перечисление можно использовать как способ отката к реализации проверки базового запроса для входных данных HTTP, если не нужно проверять с помощью пользовательской логики.
В следующей таблице показано, как значение collectionKey
value
параметра и RequestValidator.IsValidRequestString метода интерпретируется для каждого члена RequestValidationSource
перечисления.
Элемент перечисления | Параметр collectionKey |
Параметр value |
---|---|---|
Cookies |
Имя файла cookie в коллекции. | Значение в коллекции. |
Files |
Имя отправленного файла в коллекции. | Значение переданного файла в коллекции. |
Form |
Имя параметра формы в коллекции | Значение параметра формы в коллекции. |
Headers |
Имя заголовка HTTP в коллекции. | Значение заголовка HTTP в коллекции. |
Path |
null (не Path является коллекцией значений). |
Значение поля пути. |
PathInfo |
null (не PathInfo является коллекцией значений). |
Значение поля PathInfo. |
QueryString |
Имя параметра строки запроса в коллекции. | Значение параметра строки запроса в коллекции. |
RawUrl |
null (не RawUrl является коллекцией значений.) |
Значение поля Равурл. |