다음을 통해 공유


RequestValidationSource 열거형

정의

유효성을 검사할 HTTP 요청의 종류를 지정합니다.

public enum class RequestValidationSource
public enum RequestValidationSource
type RequestValidationSource = 
Public Enum RequestValidationSource
상속
RequestValidationSource

필드

Cookies 2

요청 쿠키입니다.

Files 3

업로드된 파일입니다.

Form 1

폼 값입니다.

Headers 7

요청 헤더입니다.

Path 5

가상 경로입니다.

PathInfo 6

URL 경로에 대한 확장명인 HTTP PathInfo 문자열입니다.

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 컬렉션에 있는 쿠키의 이름입니다. 컬렉션의 값입니다.
Files 컬렉션에 업로드된 파일의 이름입니다. 컬렉션에 업로드된 파일의 값입니다.
Form 컬렉션에 있는 양식 매개 변수의 이름입니다. 컬렉션에 있는 양식 매개 변수의 값입니다.
Headers 컬렉션에 있는 HTTP 헤더의 이름입니다. 컬렉션에 있는 HTTP 헤더의 값입니다.
Path null``Path(은 값의 컬렉션이 아닙니다.) 경로 필드의 값입니다.
PathInfo null``PathInfo(은 값의 컬렉션이 아닙니다.) PathInfo 필드의 값입니다.
QueryString 컬렉션에 있는 쿼리 문자열 매개 변수의 이름입니다. 컬렉션에 있는 쿼리 문자열 매개 변수의 값입니다.
RawUrl null``RawUrl(은 값의 컬렉션이 아닙니다.) RawUrl 필드의 값입니다.

적용 대상

추가 정보