Aracılığıyla paylaş


RequestValidator Sınıf

Tanım

Özel istek doğrulaması için temel yöntemleri tanımlar.

public ref class RequestValidator
public class RequestValidator
type RequestValidator = class
Public Class RequestValidator
Devralma
RequestValidator

Örnekler

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

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)
      {
        validationFailureIndex = -1;  //Set a default value for the out parameter.

        //This application does not use RawUrl directly so you can ignore the check.
        if (requestValidationSource == RequestValidationSource.RawUrl)
            return true;

        //Allow the query-string key data to have a value that is formatted like XML.
        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 are left to the base ASP.NET implementation.
        else
        {
            return base.IsValidRequestString(context, value, requestValidationSource,
                                             collectionKey, out validationFailureIndex);
        }
    }
}
Imports System.Web
Imports System.Web.Util

Public Class CustomRequestValidation
    Inherits RequestValidator

    Public Sub New()
    End Sub

    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.
        If requestValidationSource__1 = RequestValidationSource.RawUrl Then
            Return True
        End If

        ' Allow the query-string key data to have a value that is formated like XML.
        If (requestValidationSource__1 = RequestValidationSource.QueryString) AndAlso (collectionKey = "data") Then

            ' The query-string 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 are left to the base ASP.NET implementation.
            Return MyBase.IsValidRequestString(context, value, requestValidationSource__1, collectionKey, validationFailureIndex)
        End If
    End Function
End Class

Aşağıdaki örnekte, ASP.NET bir uygulama için Web.config dosyasındaki özel doğrulayıcıyı kullanacak şekilde yapılandırma gösterilmektedir.

<system.web>  
  <httpRuntime requestValidationType="CustomRequestValidation" />  
</system.web>  

Açıklamalar

Varsayılan olarak ASP.NET, kod istekten açıkça bir değer isteyene kadar istekleri doğrulamaz. Örneğin, ASP.NET kod koleksiyona erişene QueryString kadar sorgu dizesi değerlerini doğrulamaz. Varsayılan olarak, ASP.NET form değerleri, tanımlama bilgileri, HTTP kullanılarak karşıya yüklenen dosyaların adları ve özelliğin değeri gibi bazı istek veri türlerini RawUrl doğrulamaz.

RequestValidator sınıfı, özel istek doğrulama sağlamak için uygulayabileceğiniz bir temel sınıftır. Bu sınıfı uygulayarak doğrulamanın ne zaman gerçekleşeceğini ve doğrulamanın hangi tür istek verileri üzerinde gerçekleştirileceğini belirleyebilirsiniz.

varsayılan olarak, ASP.NET siteler arası betik oluşturma (XSS) denetimleri sağlar. Ancak, XSS'nin özel bir uygulamasını oluşturarak ASP.NET'de sağlanan istek doğrulama mantığını tamamlayabilir veya değiştirebilirsiniz. Örneğin, XSS saldırılarını denetlemeye ek olarak SQL ekleme saldırılarını tarar özel bir istek doğrulama uygulaması yazabilirsiniz.

Özel istek doğrulama oluşturmak için, temel sınıftan türetilen RequestValidator özel bir sınıf yazarsınız. Ardından ASP.NET uygulama düzeyi Web.config dosyasında özel istek doğrulayıcısını kullanacak şekilde yapılandırabilirsiniz. Özel sınıfı App_Code klasörüne, Bin klasöründeki derlenmiş bir sınıf kitaplığına veya GAC'deki derlenmiş bir sınıf kitaplığına yerleştirebilirsiniz.

Not

Bir uygulama için yalnızca bir özel istek doğrulama türü yapılandırılabilir. Tek tek sanal yollar veya sayfalar için farklı bir istek doğrulama türü yapılandırmak mümkün değildir.

Oluşturucular

RequestValidator()

RequestValidator sınıfının yeni bir örneğini başlatır.

Özellikler

Current

Bir uygulamada kullanılacak geçerli RequestValidator örneğe başvuruyu alır veya ayarlar.

Yöntemler

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
InvokeIsValidRequestString(HttpContext, String, RequestValidationSource, String, Int32)

HTTP istek verilerini doğrulamak için korumalı IsValidRequestString(HttpContext, String, RequestValidationSource, String, Int32) yöntemi çağıran genel bir yöntem sağlar.

IsValidRequestString(HttpContext, String, RequestValidationSource, String, Int32)

HTTP istek verilerini içeren bir dizeyi doğrular.

MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır

Ayrıca bkz.