Прочитать на английском

Поделиться через


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

Определение

Задает тип данных HTTP-запроса, которые необходимо проверить.

public enum RequestValidationSource
Наследование
RequestValidationSource

Поля

Cookies 2

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

Files 3

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

Form 1

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

Headers 7

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

Path 5

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

PathInfo 6

Строка HTTP PathInfo, представляющая собой расширение пути URL-адреса.

QueryString 0

Строка запроса.

RawUrl 4

Исходный URL-адрес. (Часть URL-адреса после домена).

Примеры

В следующем примере показано, как создать класс проверяющего элемента управления пользовательского запроса, который допускает только определенную строку для значений строки запроса.

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 является коллекцией значений.) Значение поля Равурл.

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

Продукт Версии
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8

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