RequestValidationSource Перечисление

Определение

Задает тип данных HTTP-запроса, которые необходимо проверить.Specifies what kind of HTTP request data to validate.

public enum class RequestValidationSource
public enum RequestValidationSource
type RequestValidationSource = 
Public Enum RequestValidationSource
Наследование
RequestValidationSource

Поля

Cookies 2

Файлы cookie запроса.The request cookies.

Files 3

Загруженные файлы.The uploaded file.

Form 1

Значения формы.The form values.

Headers 7

Заголовки запроса.The request headers.

Path 5

Виртуальный путь.The virtual path.

PathInfo 6

Строка HTTP PathInfo, представляющая собой расширение пути URL-адреса.An HTTP PathInfo string, which is an extension to a URL path.

QueryString 0

Строка запроса.The query string.

RawUrl 4

Исходный URL-адрес.The raw URL. (Часть URL-адреса после домена).(The part of a URL after the domain.)

Примеры

В следующем примере показано, как создать класс проверяющего элемента управления пользовательского запроса, который допускает только определенную строку для значений строки запроса.The following example shows how to create a custom request validator class that allows only a specific string for query-string values.

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 для использования пользовательского проверяющего элемента управления.The following example shows how to configure ASP.NET to use the custom validator.

<httpRuntime requestValidationType="CustomRequestValidation" />  

Комментарии

Можно создать настраиваемый тип проверки запроса, реализовав RequestValidator тип.You can create a custom request validation type by implementing the RequestValidator type. Когда ASP.NET вызывает IsValidRequestString метод для проверки запроса, ASP.NET передает requestValidationSource параметр для указания источника проверяемых данных.When ASP.NET calls the IsValidRequestString method to validate a request, ASP.NET passes a requestValidationSource parameter to specify the source of the data being validated. RequestValidationSourceПеречисление используется для указания источника или вида проверяемых данных запроса.The RequestValidationSource enumeration is used to specify the source or kind of request data that is being validated. Перечисление указывает тип входных данных HTTP, передаваемый в value параметре IsValidRequestString метода.The enumeration indicates the type of HTTP input that is passed in the value parameter of the IsValidRequestString method. Перечисление можно использовать как способ отката к реализации проверки базового запроса для входных данных HTTP, если не нужно проверять с помощью пользовательской логики.You can use the enumeration as a way to fall back to the base request validation implementation for HTTP inputs if you do not want to validate using custom logic.

В следующей таблице показано, как значение collectionKey value параметра и RequestValidator.IsValidRequestString метода интерпретируется для каждого члена RequestValidationSource перечисления.The following table shows how the value of the collectionKey and value parameter of the RequestValidator.IsValidRequestString method are interpreted for each member of the RequestValidationSource enumeration.

Элемент перечисленияEnumeration member Параметр collectionKeycollectionKey parameter Параметр valuevalue parameter
Cookies Имя файла cookie в коллекции.The name of the cookie in the collection. Значение в коллекции.The value in the collection.
Files Имя отправленного файла в коллекции.The name of the uploaded file in the collection. Значение переданного файла в коллекции.The value of the uploaded file in the collection.
Form Имя параметра формы в коллекцииThe name of the form parameter in the collection Значение параметра формы в коллекции.The value of the form parameter in the collection.
Headers Имя заголовка HTTP в коллекции.The name of an HTTP header in the collection. Значение заголовка HTTP в коллекции.The value of the HTTP header in the collection.
Path null(не Path является коллекцией значений).null (Path is not a collection of values). Значение поля пути.The value of the Path field.
PathInfo null(не PathInfo является коллекцией значений).null (PathInfo is not a collection of values). Значение поля PathInfo.The value of the PathInfo field.
QueryString Имя параметра строки запроса в коллекции.The name of the query-string parameter in the collection. Значение параметра строки запроса в коллекции.The value of the query-string parameter in the collection.
RawUrl null(не RawUrl является коллекцией значений.)null (RawUrl is not a collection of values.) Значение поля Равурл.The value of the RawUrl field.

Применяется к

См. также раздел