Webové stránky ASP.NET - WebSecurity Object
Popis
Objekt WebSecurity poskytuje zabezpečení a ověřování pro aplikace webových stránek ASP.NET.
Pomocí objektu WebSecurity můžete vytvářet uživatelské účty, přihlašovat a odhlašovat uživatele, resetovat nebo měnit hesla a další.
Odkaz na objekt WebSecurity - Vlastnosti
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 |
Odkaz na objekt WebSecurity - Metody
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 |
Inicializace databáze WebSecurity
Než budete moci použít objekt WebSecurity ve svém kódu, musíte vytvořit nebo inicializovat databázi WebSecurity.
V kořenovém adresáři webu vytvořte stránku (nebo upravte stránku ) s názvem _AppStart.cshtml .
Do souboru vložte následující kód:
_AppStart.cshtml
@{
WebSecurity.InitializeDatabaseConnection("Users", "UserProfile",
"UserId", "Email", true);
}
Výše uvedený kód se spustí při každém spuštění webové stránky (aplikace). Inicializuje databázi WebSecurity.
"Uživatelé" je název databáze WebSecurity (Users.sdf).
"UserProfile" je název databázové tabulky, která obsahuje informace o profilu uživatele.
"UserId" je název sloupce, který obsahuje ID uživatelů (primární klíč).
"E-mail" je název sloupce, který obsahuje uživatelská jména.
Poslední parametr true je logická hodnota označující, že pokud neexistují tabulky profilu uživatele a členství, měly by být vytvořeny automaticky, v opačném případě false .
Přestože true označuje automatické vytvoření databázových tabulek, samotná databáze nebude vytvořena automaticky. Musí existovat.
Databáze WebSecurity
Tabulka UserProfile obsahuje jeden záznam pro každého uživatele s ID uživatele (primární klíč) a jménem uživatele (e-mail):
UserId | |
---|---|
1 | [email protected] |
2 | [email protected] |
3 | [email protected] |
Tabulka Členství bude obsahovat informace o členství o tom, kdy byl uživatel vytvořen a zda (a kdy) bylo členství potvrzeno.
Podobně (některé sloupce nejsou zobrazeny):
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 |
Jednoduchá konfigurace členství
Pokud váš web není nakonfigurován pro použití systému členství webových stránek ASP.NET SimpleMembership, mohou se při použití objektu WebSecurity objevit chyby .
K tomu může dojít, pokud je server poskytovatele hostingu nakonfigurován jinak než váš místní server. Chcete-li tento problém vyřešit, přidejte do souboru Web.config následující prvek:
<appSettings>
<add key="enableSimpleMembership" value="true" />
</appSettings>