RequestValidationSource 열거형
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
유효성을 검사할 HTTP 요청의 종류를 지정합니다.
public enum class RequestValidationSource
public enum RequestValidationSource
type RequestValidationSource =
Public Enum 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 필드의 값입니다. |