RequestValidationSource Enum
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menentukan jenis data permintaan HTTP apa yang akan divalidasi.
public enum class RequestValidationSource
public enum RequestValidationSource
type RequestValidationSource =
Public Enum RequestValidationSource
- Warisan
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. |