RequestValidationSource Sabit listesi

Tanım

Doğrulanması gereken HTTP isteği verisi türlerini belirtir.

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

Alanlar

Cookies 2

İstek tanımlama bilgileri.

Files 3

Karşıya yüklenen dosya.

Form 1

Form değerleri.

Headers 7

İstek üst bilgileri.

Path 5

Sanal yol.

PathInfo 6

BIR PathInfo URL yolunun uzantısı olan HTTP dizesi.

QueryString 0

Sorgu dizesi.

RawUrl 4

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

Ö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şturularak ilgili bilgiler ve bilgiler yer alır.

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ı ASP.NET nasıl yapılandırıldıkları gösterir.

<httpRuntime requestValidationType="CustomRequestValidation" />  

Açıklamalar

Türü uygulayarak özel bir istek doğrulama türü RequestValidator oluşturabilirsiniz. Bir ASP.NET doğrulamak için yöntemini çağıran ASP.NET, doğrulanmış verilerin kaynağını belirtmek için IsValidRequestString requestValidationSource bir parametre iletir. RequestValidationSourceNumaralama, doğrulanmış olan istek verisi kaynağını veya türlerini belirtmek için kullanılır. Numaralama, yöntemin parametresinde geçirilen HTTP value girişinin türünü IsValidRequestString gösterir. Özel mantık kullanarak doğrulamak istemiyorsanız, HTTP girişleri için temel istek doğrulama uygulamasına geri dönmenin bir yolu olarak numaralama kullanabilirsiniz.

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

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

Şunlara uygulanır

Ayrıca bkz.