RequestValidationSource Enum

Definisi

Menentukan jenis data permintaan HTTP apa yang akan divalidasi.

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

Bidang

Nama Nilai Deskripsi
QueryString 0

String kueri.

Form 1

Nilai formulir.

Cookies 2

Cookie permintaan.

Files 3

File yang diunggah.

RawUrl 4

URL mentah. (Bagian url setelah domain.)

Path 5

Jalur virtual.

PathInfo 6

String HTTP PathInfo , yang merupakan ekstensi ke jalur URL.

Headers 7

Header permintaan.

Contoh

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

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

Contoh berikut menunjukkan cara mengonfigurasi ASP.NET untuk menggunakan validator kustom.

<httpRuntime requestValidationType="CustomRequestValidation" />

Keterangan

Anda dapat membuat jenis validasi permintaan kustom dengan menerapkan jenisnya RequestValidator . Saat ASP.NET memanggil metode IsValidRequestString untuk memvalidasi permintaan, ASP.NET meneruskan parameter requestValidationSource untuk menentukan sumber data yang sedang divalidasi. Enumerasi RequestValidationSource digunakan untuk menentukan sumber atau jenis data permintaan yang sedang divalidasi. Enumerasi menunjukkan jenis input HTTP yang diteruskan dalam value parameter IsValidRequestString metode . Anda dapat menggunakan enumerasi sebagai cara untuk kembali ke implementasi validasi permintaan dasar untuk input HTTP jika Anda tidak ingin memvalidasi menggunakan logika kustom.

Tabel berikut menunjukkan bagaimana nilai collectionKey parameter dan value metode ditafsirkan RequestValidator.IsValidRequestString untuk setiap anggota RequestValidationSource enumerasi.

Anggota enumerasi collectionKey parameter value parameter
Cookies Nama cookie dalam koleksi. Nilai dalam koleksi.
Files Nama file yang diunggah dalam koleksi. Nilai file yang diunggah dalam koleksi.
Form Nama parameter formulir dalam koleksi Nilai parameter formulir dalam koleksi.
Headers Nama header HTTP dalam koleksi. Nilai header HTTP dalam koleksi.
Path null (Path bukan kumpulan nilai). Nilai bidang Jalur.
PathInfo null (PathInfo bukan kumpulan nilai). Nilai bidang PathInfo.
QueryString Nama parameter string kueri dalam koleksi. Nilai parameter string kueri dalam koleksi.
RawUrl null (RawUrl bukan kumpulan nilai.) Nilai bidang RawUrl.

Berlaku untuk

Lihat juga