Die Sicherheit und Authentifizierung von ASP.NET WebPages-Anwendungen werden durch das WebSecurity-Objekt gewährleistet. In diesem Abschnitt werden die Eigenschaften, Methoden und zugehörigen Verwendungszwecke des WebSecurity-Objekts vorgestellt.
Das WebSecurity-Objekt bietet Sicherheit und Authentifizierung für ASP.NET Web Pages-Anwendungen.
Über das WebSecurity-Objekt können Sie Benutzerkonten erstellen, Benutzer an- und abmelden, Passwörter zurücksetzen oder ändern und viele weitere sicherheitsrelevante Funktionen nutzen.
Eigentum | beschreiben |
---|---|
AktuelleBenutzer-ID | Rufen Sie die ID des aktuell angemeldeten Benutzers ab. |
AktuellerBenutzername | Rufen Sie den Namen des aktuell angemeldeten Benutzers ab. |
HasUserId | Gibt true zurück, wenn derzeit eine Benutzer-ID vorhanden ist. |
IsAuthenticated | Gibt true zurück, wenn der aktuelle Benutzer angemeldet ist. |
Verfahren | beschreiben |
---|---|
Kennwort ändern() | Ändern Sie das Passwort für den angegebenen Benutzer. |
BestätigenKonto() | Bestätigen Sie das Konto mit dem Kontobestätigungstoken. |
Benutzerkonto erstellen() | Erstellen Sie ein neues Benutzerkonto. |
CreateUserAndAccount() | Erstellen Sie ein neues Benutzerkonto. |
GeneratePasswordResetToken() | Erzeugt ein Passwort-Reset-Token, das per E-Mail an den Benutzer gesendet werden kann, damit dieser sein Passwort zurücksetzen kann. |
GetCreateDate() | Rufen Sie die Erstellungszeit des angegebenen Mitglieds ab. |
GetPasswordChangeDate() | Rufen Sie das Datum und die Uhrzeit ab, zu der das Passwort geändert wurde. |
GetUserId() | Rufen Sie die Benutzer-ID basierend auf dem Benutzernamen ab. |
InitializeDatabaseConnection() | Initialisieren Sie das WebSecurity-System (Datenbank). |
IsConfirmed() | Überprüfen Sie, ob der Benutzer bestätigt wurde. Gibt bei Bestätigung „true“ zurück. (Die Bestätigung kann z. B. per E-Mail erfolgen.) |
IsCurrentUser() | Prüft, ob der Name des aktuellen Benutzers mit dem angegebenen Benutzernamen übereinstimmt. Wenn es eine Übereinstimmung gibt, geben Sie true zurück. |
Login() | Legen Sie das Authentifizierungstoken fest und melden Sie den Benutzer an. |
Abmelden() | Entfernen Sie das Authentifizierungstoken und melden Sie den Benutzer ab. |
RequireAuthenticatedUser() | Wenn der Benutzer nicht authentifiziert ist, wird der HTTP-Status auf 401 (Nicht autorisiert) gesetzt. |
RequireRoles() | Wenn der aktuelle Benutzer kein Mitglied der angegebenen Rolle ist, wird der HTTP-Status auf 401 (Nicht autorisiert) gesetzt. |
RequireUser() | Wenn der aktuelle Benutzer nicht der Benutzer mit dem angegebenen Benutzernamen ist, setzen Sie den HTTP-Status auf 401 (Nicht autorisiert). |
ResetPassword() | Wenn das Passwort-Reset-Token gültig ist, ändern Sie das Passwort des Benutzers in das neue Passwort. |
UserExists() | Prüft, ob der angegebene Benutzer existiert. |
Name | Wert |
---|---|
Klasse | WebMatrix.WebData.WebSecurity |
Namensraum | WebMatrix.WebData |
Montage | WebMatrix.WebData.dll |
Wenn Sie WebSecurity-Objekte in Ihrem Code verwenden möchten, müssen Sie zunächst die WebSecurity-Datenbank erstellen oder initialisieren.
Erstellen Sie in Ihrem Webstammverzeichnis eine Seite mit dem Namen _AppStart.cshtml (oder bearbeiten Sie die Seite direkt, falls sie bereits vorhanden ist).
Kopieren Sie den folgenden Code in die Datei:
@{ WebSecurity.InitializeDatabaseConnection("Users", "UserProfile", "UserId", "Email", true }
Der obige Code wird jedes Mal ausgeführt, wenn die Website (Anwendung) gestartet wird. Es initialisiert die WebSecurity-Datenbank.
„Benutzer“ ist der Name der WebSecurity-Datenbank (Users.sdf).
„UserProfile“ ist der Name der Datenbanktabelle, die Benutzerprofilinformationen enthält.
„UserId“ ist der Name der Spalte, die die Benutzer-ID (Primärschlüssel) enthält.
„Email“ ist der Name der Spalte, die den Benutzernamen enthält.
Der letzte Parameter true ist ein boolescher Wert, der angibt, dass die Tabellen automatisch erstellt werden, wenn die Benutzerkonfigurationstabelle und die Mitgliedschaftstabelle nicht vorhanden sind. Wenn Sie die Tabelle nicht automatisch erstellen möchten, sollten Sie den Parameter auf false setzen.
Obwohl true bedeutet, dass die Datenbanktabelle automatisch erstellt wird, wird die Datenbank nicht automatisch erstellt. Die Datenbank muss also vorhanden sein. |
Die UserProfile- Tabelle erstellt und speichert einen Datensatz für jeden Benutzer, jede Benutzer-ID (Primärschlüssel) und jeden Benutzernamen (E-Mail):
Benutzer-ID | |
---|---|
1 | [email protected] |
2 | [email protected] |
3 | [email protected] |
Die Mitgliedschaftstabelle enthält Mitgliedschaftsinformationen, z. B. wann der Benutzer erstellt wurde, ob das Mitglied authentifiziert wurde, wann das Mitglied authentifiziert wurde usw.
Die Details lauten wie folgt (einige Spalten werden nicht angezeigt):
Benutzer-ID | Datum erstellen | Bestätigungstoken | Wird bestätigt | Letzter Passwortfehler | Passwort | Passwortänderung |
---|---|---|---|---|---|---|
1 | 12.04.2012 16:12:17 | NULL | WAHR | NULL | AFNQhWfy.... | 12.04.2012 16:12:17 |
Hinweis: Wenn Sie alle Spalten und Inhalte sehen möchten, öffnen Sie die Datenbank und sehen Sie sich jede darin enthaltene Tabelle an.
Wenn Sie das WebSecurity-Objekt verwenden und Ihre Site nicht für die Verwendung des ASP.NET Web Pages-Mitgliedschaftssystems SimpleMembership konfiguriert ist, wird möglicherweise ein Fehler gemeldet.
Fehler können auch auftreten, wenn der Server des Hosting-Anbieters anders konfiguriert ist als Ihr lokaler Server. Um dieses Problem zu beheben, fügen Sie das folgende Element zur Web.config-Datei Ihrer Website hinzu:
<appSettings> <add key="enableSimpleMembership" value="true" /> </appSettings>
Das Obige ist eine Einführung in das WebSecurity-Objekt.