RequestValidationSource Enumeration
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt an, welche Art von HTTP-Anforderungsdaten überprüft werden sollen.
public enum class RequestValidationSource
public enum RequestValidationSource
type RequestValidationSource =
Public Enum RequestValidationSource
- Vererbung
Felder
| Name | Wert | Beschreibung |
|---|---|---|
| QueryString | 0 | Die Abfragezeichenfolge. |
| Form | 1 | Die Formularwerte. |
| Cookies | 2 | Die Anforderungscookies. |
| Files | 3 | Die hochgeladene Datei. |
| RawUrl | 4 | Die unformatierte URL. (Der Teil einer URL nach der Domäne.) |
| Path | 5 | Der virtuelle Pfad. |
| PathInfo | 6 | Eine HTTP-Zeichenfolge PathInfo , bei der es sich um eine Erweiterung für einen URL-Pfad handelt. |
| Headers | 7 | Die Anforderungsheader. |
Beispiele
Das folgende Beispiel zeigt, wie Sie eine benutzerdefinierte Anforderungs validator-Klasse erstellen, die nur eine bestimmte Zeichenfolge für Abfragezeichenfolgenwerte zulässt.
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);
}
}
}
Das folgende Beispiel zeigt, wie Sie ASP.NET für die Verwendung des benutzerdefinierten Validators konfigurieren.
<httpRuntime requestValidationType="CustomRequestValidation" />
Hinweise
Sie können einen benutzerdefinierten Anforderungsüberprüfungstyp erstellen, indem Sie den RequestValidator Typ implementieren. Wenn ASP.NET die IsValidRequestString-Methode zum Überprüfen einer Anforderung aufruft, übergibt ASP.NET einen parameter requestValidationSource, um die Datenquelle anzugeben, die überprüft wird. Die RequestValidationSource Aufzählung wird verwendet, um die Quelle oder Art von Anforderungsdaten anzugeben, die überprüft werden. Die Enumeration gibt den Typ der HTTP-Eingabe an, die value im Parameter der IsValidRequestString Methode übergeben wird. Sie können die Enumeration als Möglichkeit verwenden, um auf die Implementierung der Basisanforderungsüberprüfung für HTTP-Eingaben zurückzugreifen, wenn Sie die Überprüfung nicht mithilfe benutzerdefinierter Logik durchführen möchten.
In der folgenden Tabelle wird gezeigt, wie der Wert und collectionKeyvalue der Parameter der RequestValidator.IsValidRequestString Methode für jedes Element der RequestValidationSource Enumeration interpretiert werden.
| Enumerationselement |
collectionKey Parameter |
value Parameter |
|---|---|---|
Cookies |
Der Name des Cookies in der Sammlung. | Der Wert in der Auflistung. |
Files |
Der Name der hochgeladenen Datei in der Sammlung. | Der Wert der hochgeladenen Datei in der Sammlung. |
Form |
Der Name des Formularparameters in der Auflistung | Der Wert des Formularparameters in der Auflistung. |
Headers |
Der Name eines HTTP-Headers in der Auflistung. | Der Wert des HTTP-Headers in der Auflistung. |
Path |
null (Path ist keine Sammlung von Werten). |
Der Wert des Felds "Pfad". |
PathInfo |
null (PathInfo ist keine Sammlung von Werten). |
Der Wert des PathInfo-Felds. |
QueryString |
Der Name des Abfragezeichenfolgenparameters in der Auflistung. | Der Wert des Abfragezeichenfolgenparameters in der Auflistung. |
RawUrl |
null (RawUrl ist keine Sammlung von Werten.) |
Der Wert des RawUrl-Felds. |