Bagikan melalui


RequestValidator Kelas

Definisi

Menentukan metode dasar untuk validasi permintaan kustom.

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

Contoh

Contoh berikut menunjukkan cara membuat validator permintaan kustom yang hanya memungkinkan string tertentu digunakan untuk nilai string kueri.

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

Contoh berikut menunjukkan cara mengonfigurasi ASP.NET untuk menggunakan validator kustom dalam file Web.config untuk aplikasi.

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

Keterangan

Secara default, ASP.NET tidak memvalidasi permintaan hingga kode secara eksplisit meminta nilai dari permintaan. Misalnya, ASP.NET tidak memvalidasi nilai string kueri hingga kode mengakses QueryString koleksi. Secara default, ASP.NET juga tidak memvalidasi beberapa jenis data permintaan, seperti nilai formulir, cookie, nama file yang telah diunggah menggunakan HTTP, dan nilai RawUrl properti .

Kelas RequestValidator adalah kelas dasar yang dapat Anda terapkan untuk memberikan validasi permintaan kustom. Dengan menerapkan kelas ini, Anda dapat menentukan kapan validasi terjadi dan jenis data permintaan apa yang akan dilakukan validasi.

Secara default, ASP.NET menyediakan pemeriksaan skrip lintas situs (XSS). Namun, Anda dapat melengkapi atau mengganti logika validasi permintaan yang disediakan dalam ASP.NET dengan membuat implementasi kustom XSS. Misalnya, Anda dapat menulis implementasi validasi permintaan kustom yang memindai serangan injeksi SQL selain memeriksa serangan XSS.

Untuk membuat validasi permintaan kustom, Anda menulis kelas kustom yang berasal dari RequestValidator kelas dasar. Anda kemudian mengonfigurasi ASP.NET untuk menggunakan validator permintaan kustom dalam file Web.config tingkat aplikasi. Anda dapat meletakkan kelas kustom di folder App_Code, di pustaka kelas yang dikompilasi di folder Bin, atau di pustaka kelas yang dikompilasi di GAC.

Nota

Hanya satu jenis validasi permintaan kustom yang dapat dikonfigurasi untuk aplikasi. Tidak dimungkinkan untuk mengonfigurasi jenis validasi permintaan yang berbeda untuk jalur atau halaman virtual individual.

Konstruktor

Nama Deskripsi
RequestValidator()

Menginisialisasi instans baru dari kelas RequestValidator.

Properti

Nama Deskripsi
Current

Mendapatkan atau mengatur referensi ke instans saat ini RequestValidator yang akan digunakan dalam aplikasi.

Metode

Nama Deskripsi
Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan Type instans saat ini.

(Diperoleh dari Object)
InvokeIsValidRequestString(HttpContext, String, RequestValidationSource, String, Int32)

Menyediakan metode publik yang memanggil metode yang dilindungi IsValidRequestString(HttpContext, String, RequestValidationSource, String, Int32) untuk memvalidasi data permintaan HTTP.

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

Memvalidasi string yang berisi data permintaan HTTP.

MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Berlaku untuk

Lihat juga