RequestValidationSource Sabit listesi
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Doğrulanması gereken HTTP isteği verisi türlerini belirtir.
public enum class RequestValidationSource
public enum RequestValidationSource
type RequestValidationSource =
Public Enum RequestValidationSource
- Devralma
Alanlar
Cookies | 2 | İstek tanımlama bilgileri. |
Files | 3 | Karşıya yüklenen dosya. |
Form | 1 | Form değerleri. |
Headers | 7 | İstek üst bilgileri. |
Path | 5 | Sanal yol. |
PathInfo | 6 | BIR PathInfo URL yolunun uzantısı olan HTTP dizesi. |
QueryString | 0 | Sorgu dizesi. |
RawUrl | 4 | Ham URL. (Url'nin etki alanındaki bölümü.) |
Örnekler
Aşağıdaki örnekte, sorgu dizesi değerleri için yalnızca belirli bir dizeye izin veren özel bir istek doğrulayıcı sınıfının nasıl oluşturularak ilgili bilgiler ve bilgiler yer alır.
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);
}
}
}
Aşağıdaki örnekte, özel doğrulayıcıyı ASP.NET nasıl yapılandırıldıkları gösterir.
<httpRuntime requestValidationType="CustomRequestValidation" />
Açıklamalar
Türü uygulayarak özel bir istek doğrulama türü RequestValidator oluşturabilirsiniz. Bir ASP.NET doğrulamak için yöntemini çağıran ASP.NET, doğrulanmış verilerin kaynağını belirtmek için IsValidRequestString requestValidationSource
bir parametre iletir. RequestValidationSourceNumaralama, doğrulanmış olan istek verisi kaynağını veya türlerini belirtmek için kullanılır. Numaralama, yöntemin parametresinde geçirilen HTTP value
girişinin türünü IsValidRequestString gösterir. Özel mantık kullanarak doğrulamak istemiyorsanız, HTTP girişleri için temel istek doğrulama uygulamasına geri dönmenin bir yolu olarak numaralama kullanabilirsiniz.
Aşağıdaki tabloda, yönteminin ve parametresinin değerinin, numaralamanın her üyesi collectionKey
için nasıl value
RequestValidator.IsValidRequestString RequestValidationSource
yorumlandır olduğu gösterir.
Numaralama üyesi | collectionKey Parametre |
value Parametre |
---|---|---|
Cookies |
Koleksiyonda tanımlama bilgisinin adı. | Koleksiyonda yer alan değer. |
Files |
Koleksiyonda karşıya yüklenen dosyanın adı. | Koleksiyonda karşıya yüklenen dosyanın değeri. |
Form |
Koleksiyonda form parametresinin adı | Koleksiyonda form parametresinin değeri. |
Headers |
Koleksiyonda bir HTTP üst bilgisi adı. | Koleksiyonda HTTP üst bilgisi değeri. |
Path |
null ( Path bir değer koleksiyonu değildir). |
Yol alanı değeri. |
PathInfo |
null ( PathInfo bir değer koleksiyonu değildir). |
PathInfo alanı değeri. |
QueryString |
Koleksiyonda sorgu dizesi parametresinin adı. | Koleksiyonda sorgu dizesi parametresinin değeri. |
RawUrl |
null ( RawUrl bir değer koleksiyonu değildir.) |
RawUrl alanı değeri. |