Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
RequestValidator-Klasse
Definiert Basismethoden für benutzerdefinierte Anforderungsvalidierung.
Assembly: System.Web (in System.Web.dll)
Der RequestValidator-Typ macht die folgenden Member verfügbar.
| Name | Beschreibung | |
|---|---|---|
|
RequestValidator | Initialisiert eine neue Instanz der RequestValidator-Klasse. |
| Name | Beschreibung | |
|---|---|---|
|
Current | Ruft einen Verweis auf die aktuelle RequestValidator-Instanz ab, die in einer Anwendung verwendet wird, ab oder legt ihn fest. |
| Name | Beschreibung | |
|---|---|---|
|
Equals(Object) | Bestimmt, ob das angegebene Object und das aktuelle Object gleich sind. (Von Object geerbt.) |
|
Finalize | Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der automatische Speicherbereinigung freigegeben wird. (Von Object geerbt.) |
|
GetHashCode | Fungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.) |
|
GetType | Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.) |
|
IsValidRequestString | Validiert eine Zeichenfolge, die HTTP-Anforderungsdaten enthält. |
|
MemberwiseClone | Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.) |
|
ToString | Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.) |
Standardmäßig überprüft ASP.NET keine Anforderungen, bis Code ausdrücklich einen Wert von der Anforderung anfordert. ASP.NET überprüft z. B. solange keine Abfragezeichenfolgenwerte, bis Code auf die QueryString-Auflistung zugreift. Standardmäßig überprüft ASP.NET auch einigen Typen der Anforderungsdaten, z. B. Formularwerte, Cookies, die Namen von Dateien, die mit HTTP hochgeladen wurden, und den Wert der RawUrl-Eigenschaft nicht.
Die RequestValidator-Klasse ist eine Basisklasse, die Sie implementieren können, um benutzerdefinierte Anforderungsvalidierungen bereitzustellen. Durch die Implementierung dieser Klasse können Sie festlegen, wann die Validierung stattfindet und für welchen Typ der Anforderungsdaten die Validierung auszuführen ist.
Standardmäßig stellt ASP.NET Überprüfungen siteübergreifender Skripts (XSS) zur Verfügung. Sie können die Anforderungsvalidierungslogik jedoch ergänzen oder ersetzen, die in ASP.NET bereitgestellt wird, indem Sie eine benutzerdefinierte Implementierung von XSS erstellen. Sie können z. B. eine benutzerdefinierte Anforderungsvalidierungsimplementierung schreiben, die neben Überprüfungen auf XSS-Angriffe Überprüfungen auf Angriffe durch Einschleusung von SQL-Befehlen durchführt.
Um benutzerdefinierte Anforderungsvalidierung zu erstellen, schreiben Sie eine benutzerdefinierte Klasse, die sich von der RequestValidator-Basisklasse ableitet. Sie konfigurieren dann ASP.NET, um das benutzerdefinierte Anforderungsvalidierungssteuerelement in der Web.config-Datei auf Anwendungsebene zu verwenden. Sie können die benutzerdefinierte Klasse im Ordner "App_Code", in einer kompilierten Klassenbibliothek im Ordner "Bin" oder in einer kompilierten Klassenbibliothek im GAC ablegen.
Hinweis
|
|---|
|
Nur ein benutzerdefinierter Anforderungsvalidierungstyp kann für eine Anwendung konfiguriert werden. Es ist nicht möglich, einen anderen Anforderungsvalidierungstyp für einzelne virtuelle Pfade oder Seiten zu konfigurieren. |
Im folgenden Beispiel wird gezeigt, wie ein benutzerdefiniertes Anforderungsvalidierungssteuerelement, das nur eine bestimmte Zeichenfolge für Abfragezeichenfolgenwerte zulässt, erstellt wird.
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); } } }
Im folgenden Beispiel wird gezeigt, wie ASP.NET konfiguriert wird, um das benutzerdefinierte Validierungssteuerelement in der Datei Web.config für eine Anwendung zu verwenden.
<system.web> <httpRuntime requestValidationType="CustomRequestValidation" /> </system.web>
Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Hinweis