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 verilerinin türünü belirtir.
public enum class RequestValidationSource
public enum RequestValidationSource
type RequestValidationSource =
Public Enum RequestValidationSource
- Devralma
Alanlar
| Name | Değer | Description |
|---|---|---|
| QueryString | 0 | Sorgu dizesi. |
| Form | 1 | Form değerleri. |
| Cookies | 2 | İstek tanımlama bilgileri. |
| Files | 3 | Karşıya yüklenen dosya. |
| RawUrl | 4 | Ham URL. (Url'nin etki alanından sonraki bölümü.) |
| Path | 5 | Sanal yol. |
| PathInfo | 6 | PathInfo URL yolunun uzantısı olan HTTP dizesi. |
| Headers | 7 | İstek üst bilgileri. |
Ö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şturulacağı gösterilmektedir.
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ı kullanmak için ASP.NET nasıl yapılandırılır gösterilmektedir.
<httpRuntime requestValidationType="CustomRequestValidation" />
Açıklamalar
Türünü uygulayarak RequestValidator özel bir istek doğrulama türü oluşturabilirsiniz. ASP.NET bir isteği doğrulamak için IsValidRequestString yöntemini çağırdığında ASP.NET doğrulanan verilerin kaynağını belirtmek için bir requestValidationSource parametresi geçirir. Numaralandırma RequestValidationSource , doğrulanan istek verilerinin kaynağını veya türünü belirtmek için kullanılır. Numaralandırma, yönteminin parametresinde value geçirilen HTTP girişinin IsValidRequestString türünü gösterir. Özel mantık kullanarak doğrulamak istemiyorsanız, numaralandırmayı HTTP girişleri için temel istek doğrulama uygulamasına geri dönmenin bir yolu olarak kullanabilirsiniz.
Aşağıdaki tabloda, yönteminin ve collectionKey parametresinin value değerinin numaralandırmanın RequestValidator.IsValidRequestString her üyesi RequestValidationSource için nasıl yorumlandığı gösterilmektedir.
| Numaralandırma üyesi |
collectionKey Parametre |
value Parametre |
|---|---|---|
Cookies |
Koleksiyondaki tanımlama bilgisinin adı. | Koleksiyondaki değer. |
Files |
Koleksiyonda karşıya yüklenen dosyanın adı. | Karşıya yüklenen dosyanın koleksiyondaki değeri. |
Form |
Koleksiyondaki form parametresinin adı | Koleksiyondaki form parametresinin değeri. |
Headers |
Koleksiyondaki bir HTTP üst bilgisinin adı. | Koleksiyondaki HTTP üst bilgisinin değeri. |
Path |
null (Path bir değer koleksiyonu değildir). |
Yol alanının değeri. |
PathInfo |
null (PathInfo bir değer koleksiyonu değildir). |
PathInfo alanının değeri. |
QueryString |
Koleksiyondaki sorgu dizesi parametresinin adı. | Koleksiyondaki query-string parametresinin değeri. |
RawUrl |
null (RawUrl bir değer koleksiyonu değildir.) |
RawUrl alanının değeri. |