RequestValidationSource Sabit listesi

Tanım

Doğrulanması gereken HTTP isteği verilerinin türünü belirtir.

public enum class RequestValidationSource
public enum RequestValidationSource
type RequestValidationSource = 
Public Enum RequestValidationSource
Devralma
RequestValidationSource

Alanlar

Name Değer Description
QueryString 0

Sorgu dizesi.

Form 1

Form değerleri.

Cookies 2

İstek tanımlama bilgileri.

Files 3

Karşıya yüklenen dosya.

RawUrl 4

Ham URL. (Url'nin etki alanından sonraki bölümü.)

Path 5

Sanal yol.

PathInfo 6

PathInfo URL yolunun uzantısı olan HTTP dizesi.

Headers 7

İstek üst bilgileri.

Örnekler

Aşağıdaki örnekte, sorgu dizesi değerleri için yalnızca belirli bir dizeye izin veren özel bir istek doğrulayıcı sınıfının nasıl oluşturulacağı gösterilmektedir.

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);
        }
    }
}

Aşağıdaki örnekte, özel doğrulayıcıyı kullanmak için ASP.NET nasıl yapılandırılır gösterilmektedir.

<httpRuntime requestValidationType="CustomRequestValidation" />

Açıklamalar

Türünü uygulayarak RequestValidator özel bir istek doğrulama türü oluşturabilirsiniz. ASP.NET bir isteği doğrulamak için IsValidRequestString yöntemini çağırdığında ASP.NET doğrulanan verilerin kaynağını belirtmek için bir requestValidationSource parametresi geçirir. Numaralandırma RequestValidationSource , doğrulanan istek verilerinin kaynağını veya türünü belirtmek için kullanılır. Numaralandırma, yönteminin parametresinde value geçirilen HTTP girişinin IsValidRequestString türünü gösterir. Özel mantık kullanarak doğrulamak istemiyorsanız, numaralandırmayı HTTP girişleri için temel istek doğrulama uygulamasına geri dönmenin bir yolu olarak kullanabilirsiniz.

Aşağıdaki tabloda, yönteminin ve collectionKey parametresinin value değerinin numaralandırmanın RequestValidator.IsValidRequestString her üyesi RequestValidationSource için nasıl yorumlandığı gösterilmektedir.

Numaralandırma üyesi collectionKey Parametre value Parametre
Cookies Koleksiyondaki tanımlama bilgisinin adı. Koleksiyondaki değer.
Files Koleksiyonda karşıya yüklenen dosyanın adı. Karşıya yüklenen dosyanın koleksiyondaki değeri.
Form Koleksiyondaki form parametresinin adı Koleksiyondaki form parametresinin değeri.
Headers Koleksiyondaki bir HTTP üst bilgisinin adı. Koleksiyondaki HTTP üst bilgisinin değeri.
Path null (Path bir değer koleksiyonu değildir). Yol alanının değeri.
PathInfo null (PathInfo bir değer koleksiyonu değildir). PathInfo alanının değeri.
QueryString Koleksiyondaki sorgu dizesi parametresinin adı. Koleksiyondaki query-string parametresinin değeri.
RawUrl null (RawUrl bir değer koleksiyonu değildir.) RawUrl alanının değeri.

Şunlara uygulanır

Ayrıca bkz.