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 soll.
public enum class RequestValidationSource
public enum RequestValidationSource
type RequestValidationSource =
Public Enum RequestValidationSource
- Vererbung
Felder
Cookies | 2 | Die Anforderungscookies. |
Files | 3 | Die hochgeladene Datei. |
Form | 1 | Die Formularwerte. |
Headers | 7 | Die Anforderungsheader. |
Path | 5 | Der virtuelle Pfad. |
PathInfo | 6 | Eine HTTP-PathInfo-Zeichenfolge, bei der es sich um eine Erweiterung eines URL-Pfads handelt. |
QueryString | 0 | Die Abfragezeichenfolge. |
RawUrl | 4 | Die unformatierte URL. (Der Teil einer URL nach der Domäne.) |
Beispiele
Das folgende Beispiel zeigt, wie sie eine benutzerdefinierte Anforderungs-Validierungsklasse 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);
}
}
}
Im folgenden Beispiel wird gezeigt, wie Sie die ASP.NET für die Verwendung des benutzerdefinierten Validierungssyntators konfigurieren.
<httpRuntime requestValidationType="CustomRequestValidation" />
Hinweise
Sie können einen benutzerdefinierten Anforderungsvalidierungstyp erstellen, indem Sie den Typ RequestValidator implementieren. Wenn ASP.NET die -Methode aufruft, um eine Anforderung zu überprüfen, übergibt ASP.NET einen Parameter, um die Quelle der zu IsValidRequestString requestValidationSource
überprüfenden Daten anzugeben. Die RequestValidationSource -Enumeration wird verwendet, um die Quelle oder Art der Anforderungsdaten anzugeben, die überprüft werden. Die -Enumeration gibt den Typ der HTTP-Eingabe an, die im value
-Parameter der -Methode übergeben IsValidRequestString wird. Sie können die -Enumeration als Möglichkeit zum Fall fall back auf die Basisanforderungsvalidierungsimplementierung für HTTP-Eingaben verwenden, wenn Sie die Überprüfung nicht mit benutzerdefinierter Logik durchführen möchten.
Die folgende Tabelle zeigt, wie der Wert des -Parameters und des -Parameters der -Methode für jeden Member collectionKey
value
der RequestValidator.IsValidRequestString -Enumeration interpretiert RequestValidationSource
wird.
Enumerationsmember | collectionKey -Parameter |
value -Parameter |
---|---|---|
Cookies |
Der Name des Cookies in der Auflistung. | Der Wert in der Auflistung. |
Files |
Der Name der hochgeladenen Datei in der Auflistung. | Der Wert der hochgeladenen Datei in der Auflistung. |
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 Auflistung von Werten). |
Der Wert des Felds Pfad. |
PathInfo |
null ( PathInfo ist keine Auflistung von Werten). |
Der Wert des Felds PathInfo. |
QueryString |
Der Name des Abfragezeichenfolgenparameters in der Auflistung. | Der Wert des Abfragezeichenfolgenparameters in der Auflistung. |
RawUrl |
null ( RawUrl ist keine Auflistung von Werten.) |
Der Wert des Felds RawUrl. |