Freigeben über


Überprüfen der Benutzereingabe in ASP.NET-Webseiten

Aktualisiert: November 2007

Sie können einer ASP.NET-Webseite zur Validierung von Benutzereingaben Validierungssteuerelemente hinzufügen. Validierungssteuerelemente bieten einen einfach zu verwendenden Mechanismus für alle gängigen Arten der Standardvalidierung – wie das Überprüfen, ob eine Datumsangabe gültig ist oder ein Wert innerhalb eines bestimmten Bereichs liegt – sowie Möglichkeiten zum Bereitstellen einer benutzerdefinierten Validierung. Außerdem können Sie mit Validierungssteuerelementen die Anzeige der Fehlerinformationen für den Benutzer anpassen.

Validierungssteuerelemente können mit allen Steuerelementen einer ASP.NET-Webseite verwendet werden, z. B. mit HTML-Steuerelementen und Webserversteuerelementen. Weitere Informationen finden Sie unter Übersicht über ASP.NET-Webserversteuerelemente.

Sicherheitshinweis:

Standardmäßig überprüfen ASP.NET-Webseiten automatisch, ob eine Eingabe potenziell schädlich ist. Weitere Informationen finden Sie unter Übersicht über Skriptangriffe.

Verwenden von Validierungssteuerelementen

Sie können die Validierung von Benutzereingaben aktivieren, indem Sie einer Seite Validierungssteuerelemente hinzufügen – in derselben Weise, wie auch andere Serversteuerelemente hinzugefügt werden. Es gibt Steuerelemente für verschiedene Typen der Validierung, z. B. Bereichsvalidierung oder Mustervergleich. Eine vollständige Liste der Validierungstypen finden Sie unter Arten der Validierung für ASP.NET-Serversteuerelemente. Jedes Validierungssteuerelement verweist auf ein Eingabesteuerelement (ein Serversteuerelement) an einer anderen Stelle der Seite. Beim Verarbeiten einer Benutzereingabe (z. B. beim Übermitteln einer Seite) überprüft das Validierungssteuerelement die Benutzereingabe und legt eine Eigenschaft fest, die angibt, ob die Eingabe die Validierung bestanden hat. Nach dem Aufruf aller Validierungssteuerelemente wird auf der Seite eine Eigenschaft festgelegt, die angibt, ob eine Validierung fehlgeschlagen ist.

Validierungssteuerelemente können in Validierungsgruppen zusammengefasst werden und werden dann gruppenweise überprüft. Sie können mit Validierungsgruppen die Validierung zusammengehöriger Steuerelemente auf einer Seite selektiv aktivieren oder deaktivieren. Andere Validierungsoperationen, wie das Anzeigen eines ValidationSummary-Steuerelements oder das Aufrufen der GetValidators-Methode, können auf die Validierungsgruppe verweisen.

Sie können den Status der Seite und den einzelner Steuerelemente im Code testen. So würden Sie z. B. den Status der Validierungssteuerelemente testen, bevor Sie einen Datensatz mit Informationen aktualisieren, die vom Benutzer eingegeben wurden. Falls ein Status ungültig ist, wird der Datensatz nicht aktualisiert. Wenn eine Validierung fehlschlägt, wird die Verarbeitung in der Regel beendet, und die Seite wird an den Benutzer zurückgegeben. Validierungssteuerelemente, die Fehler feststellen, erzeugen daraufhin eine Fehlermeldung, die auf der Seite angezeigt wird. Sie können mit einem ValidationSummary-Steuerelement alle Validierungsfehler an einem Ort anzeigen.

Hinweis:

Datengebundene Steuerelemente zum Aktualisieren, Einfügen und Löschen von Daten, wie die Steuerelemente GridView, FormView und DetailsView, prüfen vor der Aktualisierung der Daten automatisch, ob die Validierungen bestanden wurden.

Zeitpunkt der Validierung

Validierungssteuerelemente führen die Eingabevalidierung im Servercode aus. Wenn der Benutzer eine Seite an den Server sendet, werden die Validierungssteuerelemente aufgerufen, um die Benutzereingabe Steuerelement für Steuerelement zu überprüfen. Wenn in einem der Eingabesteuerelemente ein Fehler festgestellt wird, wird die ganze Seite in einen ungültigen Zustand versetzt, sodass Sie vor dem Ausführen des Codes einen Gültigkeitstest durchführen können. Die Validierung erfolgt nach der Seiteninitialisierung (d. h. nach der Verarbeitung der Ansichtszustandsdaten und Rücksendedaten), jedoch vor dem Aufruf eines Change-Ereignishandlers oder Click-Ereignishandlers.

Wenn der Benutzer einen Browser verwendet, der ECMAScript (Javascript) unterstützt, können die Validierungssteuerelemente eine Validierung auch mithilfe eines Clientskripts durchführen. Dies kann die Antwortzeit in der Seite erheblich verbessern, denn das Erkennen von Fehlern und das Anzeigen von Fehlermeldungen erfolgen unmittelbar, nachdem der Benutzer das Steuerelement mit dem Fehler verlässt. Mit der clientseitigen Validierung können Sie das Layout von Fehlermeldungen besser anpassen und eine Fehlerzusammenfassung in einem Meldungsfeld anzeigen lassen. Weitere Informationen finden Sie unter Clientseitige Validierung für ASP.NET-Serversteuerelemente.

ASP.NET führt selbst dann eine Validierung auf dem Server aus, wenn bereits eine clientseitige Validierung durch die Validierungssteuerelemente stattgefunden hat, sodass Sie innerhalb der serverbasierten Ereignishandler einen Gültigkeitstest durchführen können. Außerdem trägt die erneute Validierung auf dem Server dazu bei, dass Benutzer die Validierung nicht umgehen können, indem sie die Validierung des Clientskripts deaktivieren oder ändern.

Sie können die Validierung im Code aufrufen, indem Sie die Validate-Methode eines Validierungssteuerelements aufrufen. Weitere Informationen finden Sie unter Gewusst wie: Programmgesteuertes Validieren für ASP.NET-Serversteuerelemente.

Validierung anhand mehrerer Bedingungen

Jedes Validierungssteuerelement führt i. d. R. einen Validierungstest durch. Möglicherweise möchten Sie jedoch mehrere Bedingungen überprüfen. So kann z. B. die Eingabe in ein Feld sowohl obligatorisch als auch auf Werte innerhalb eines bestimmten Bereichs beschränkt sein.

Sie können mehrere Validierungssteuerelemente an ein Eingabesteuerelement auf einer Seite anfügen. In diesem Fall werden die von den Steuerelementen ausgeführten Tests mit einem logischen AND-Operator aufgelöst. Das bedeutet, dass die vom Benutzer eingegebenen Daten alle Tests bestehen müssen, um gültig zu sein.

In manchen Fällen können Eingaben in verschiedenen Formaten gültig sein. Wenn Sie z. B. zur Eingabe einer Telefonnummer auffordern, könnten Sie Benutzern die Eingabe einer Telefonnummer für Ortsgespräche, für Ferngespräche oder für Auslandsgespräche erlauben. In diesem Fall ist das Verwenden mehrerer Validierungssteuerelemente nicht geeignet, da die Benutzereingaben alle Tests bestehen müssen, um gültig zu sein. Verwenden Sie für diese Art von Test – einer logischen OR-Operation, bei der nur ein Test bestanden werden muss – das RegularExpressionValidator-Validierungssteuerelement, und geben Sie im Steuerelement mehrere gültige Muster an. Als Alternative können Sie das CustomValidator-Validierungssteuerelement verwenden und eigenen Validierungscode schreiben.

Anzeigen von Fehlerinformationen

Validierungssteuerelemente sind in der gerenderten Seite normalerweise nicht sichtbar. Wenn das Steuerelement jedoch einen Fehler feststellt, wird ein von Ihnen angegebener Fehlermeldungstext angezeigt. Zum Anzeigen der Fehlermeldung stehen eine Reihe von Möglichkeiten zur Verfügung, die in der folgenden Tabelle aufgeführt sind.

Anzeigemethode

Beschreibung

Inline

Jedes Validierungssteuerelement kann unabhängig von den anderen eine Fehlermeldung an Ort und Stelle anzeigen (in der Regel neben dem Steuerelement, bei dem der Fehler aufgetreten ist).

Zusammenfassung

Validierungsfehler können gesammelt und an einer gemeinsamen Stelle angezeigt werden, z. B. am oberen Rand der Seite. Diese Anzeigemethode wird häufig in Verbindung mit einem Meldungstext verwendet, der neben den falsch ausgefüllten Eingabefeldern angezeigt wird. Wenn der Benutzer mit Internet Explorer 4.0 oder höher arbeitet, kann die Zusammenfassung in einem Meldungsfeld angezeigt werden.

Wenn Sie Validierungsgruppen verwenden, benötigen Sie für jede einzelne Gruppe ein ValidationSummary-Steuerelement.

An Ort und Stelle und in der Zusammenfassung

Die Fehlermeldung kann in der Zusammenfassung und an Ort und Stelle unterschiedlich dargestellt werden. Sie können diese Option angeben, um eine kürzere Fehlermeldung an Ort und Stelle und ausführlichere Informationen in der Zusammenfassung anzuzeigen.

Benutzerdefiniert

Sie können eine benutzerdefinierte Fehlermeldungsanzeige erstellen, indem Sie die Fehlerinformationen erfassen und eine eigene Ausgabe entwerfen.

Wenn Sie Fehlermeldungen am selben Ort oder in einer Zusammenfassung anzeigen, können Sie den Text der Fehlermeldung mit HTML formatieren.

Sicherheitshinweis:

Zeigen Sie beim Erstellen von benutzerdefinierten Fehlermeldungen keine Informationen an, die böswilligen Benutzern bei einem Angriff auf eine Anwendung Hilfestellung leisten. Weitere Informationen finden Sie unter Gewusst wie: Anzeigen von sicheren Fehlermeldungen.

Validierungsobjektmodell

Sie können über das Objektmodell, das von den einzelnen Validierungssteuerelementen und von der Seite verfügbar gemacht wird, mit Validierungssteuerelementen interagieren. Jedes Validierungssteuerelement macht eine eigene IsValid-Eigenschaft verfügbar, die Sie daraufhin testen können, ob eine Validierung für das Steuerelement erfolgreich war oder fehlgeschlagen ist. Auch die Seite macht eine IsValid-Eigenschaft verfügbar, die den IsValid-Zustand aller Validierungssteuerelemente auf der Seite zusammenfasst. Über diese Eigenschaft können Sie mithilfe eines einzigen Tests bestimmen, ob Sie mit der eigenen Verarbeitung fortfahren können.

Die Seite macht außerdem eine Validators-Auflistung verfügbar, die eine Liste mit allen Validierungssteuerelementen der Seite enthält. Sie können diese Auflistung durchgehen, um den Status einzelner Validierungssteuerelemente zu prüfen.

Hinweis:

Das Objektmodell für die clientseitige Validierung weist einige Unterschiede auf. Weitere Informationen finden Sie unter Clientseitige Validierung für ASP.NET-Serversteuerelemente.

Anpassen der Validierung

Sie können den Validierungsprozess auf verschiedene Arten anpassen:

  • Sie können Format, Text und Ort der Fehlermeldungen angeben. Sie können angeben, ob die Fehlermeldungen einzeln oder als Zusammenfassung angezeigt werden sollen.

  • Sie können mit dem CustomValidator-Steuerelement eine benutzerdefinierte Validierung erstellen. Das Steuerelement ruft zwar Ihre Logik auf, funktioniert aber in Bezug auf das Festlegen des Fehlerzustands, das Anzeigen von Fehlermeldungen usw. wie die anderen Validierungssteuerelemente auch. Sie können damit auf einfache Art eine benutzerdefinierte Validierungslogik erstellen und doch weiterhin das Validierungsframework der Seite verwenden.

  • Bei der clientseitigen Validierung können Sie den Validierungsaufruf abfangen und durch eine eigene Validierungslogik ergänzen oder ersetzen.

Siehe auch

Weitere Ressourcen

ASP.NET-Validierungssteuerelemente