ASP.NET-Webseiten – WebSecurity-Objekt
Beschreibung
Das WebSecurity-Objekt bietet Sicherheit und Authentifizierung für ASP.NET-Webseitenanwendungen.
Mit dem WebSecurity-Objekt können Sie Benutzerkonten erstellen, Benutzer an- und abmelden, Kennwörter zurücksetzen oder ändern und vieles mehr.
WebSecurity-Objektreferenz - Eigenschaften
Properties | Description |
---|---|
CurrentUserId | Gets the ID for the current user |
CurrentUserName | Gets the name of the current user |
HasUserId | Returns true if the current has a user ID |
IsAuthenticated | Returns true if the current user is logged in |
WebSecurity-Objektreferenz - Methoden
Method | Description |
---|---|
ChangePassword() | Changes the password for a user |
ConfirmAccount() | Confirms an account using a confirmation token |
CreateAccount() | Creates a new user account |
CreateUserAndAccount() | Creates a new user account |
GeneratePasswordResetToken() | Generates a token that can be sent to as user by email |
GetCreateDate() | Gets the time the specified membership was created |
GetPasswordChangeDate() | Gets the date and time when password was changed |
GetUserId() | Gets a user ID from a user name |
InitializeDatabaseConnection() | Initializes the WebSecurity system (database) |
IsConfirmed() | Checks if a user is confirmed |
IsCurrentUser() | Checks if the current user matches a user name |
Login() | Logs the user in by setting a token in the cookie |
Logout() | Logs the user out by removing the token cookie |
RequireAuthenticatedUser() | Exits the page if the user is not an authenticated user |
RequireRoles() | Exits the page if the user is not a part of the specified roles |
RequireUser() | Exits the page if the user is not the specified user |
ResetPassword() | Changes a user's password using a token |
UserExists() | Checks if a given user exists |
Initialisieren der WebSecurity-Datenbank
Sie müssen eine WebSecurity-Datenbank erstellen oder initialisieren, bevor Sie das WebSecurity-Objekt in Ihrem Code verwenden können.
Erstellen Sie im Stamm Ihres Webs eine Seite mit dem Namen _AppStart.cshtml (oder bearbeiten Sie die Seite ) .
Fügen Sie den folgenden Code in die Datei ein:
_AppStart.cshtml
@{
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 die Benutzerprofilinformationen enthält.
"UserId" ist der Name der Spalte, die die Benutzer-IDs (Primärschlüssel) enthält.
"E-Mail" ist der Name der Spalte, die Benutzernamen enthält.
Der letzte Parameter true ist ein boolescher Wert, der angibt, dass das Benutzerprofil und die Mitgliedschaftstabellen automatisch erstellt werden sollen, wenn sie nicht vorhanden sind, andernfalls false .
Obwohl true die automatische Erstellung der Datenbanktabellen anzeigt , wird die Datenbank selbst nicht automatisch erstellt. Es muss existieren.
Die WebSecurity-Datenbank
Die UserProfile- Tabelle enthält einen Datensatz für jeden Benutzer mit einer Benutzer-ID (Primärschlüssel) und dem Namen des Benutzers (E-Mail):
UserId | |
---|---|
1 | [email protected] |
2 | [email protected] |
3 | [email protected] |
Die Mitgliedschaftstabelle enthält Mitgliedschaftsinformationen darüber, wann der Benutzer erstellt wurde und ob (und wann) die Mitgliedschaft bestätigt wurde.
So ähnlich (einige Spalten werden nicht angezeigt):
User Id |
Create Date |
Confirmation Token |
Is Confirmed |
Last Password Failure |
Password | Password Change |
---|---|---|---|---|---|---|
1 | 12.04.2012 16:12:17 | NULL | True | NULL | AFNQhWfy.... | 12.04.2012 16:12:17 |
Einfache Mitgliedschaftskonfiguration
Sie erhalten möglicherweise Fehler bei der Verwendung des WebSecurity-Objekts, wenn Ihre Site nicht für die Verwendung des Mitgliedschaftssystems SimpleMembership von ASP.NET Web Pages konfiguriert ist .
Dies kann vorkommen, wenn der Server eines Hosting-Anbieters anders konfiguriert ist als Ihr lokaler Server. Um dies zu beheben, fügen Sie der Datei Web.config der Site das folgende Element hinzu:
<appSettings>
<add key="enableSimpleMembership" value="true" />
</appSettings>