RequestValidator Kelas
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 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) |