Pages Web ASP.NET - Objet WebSecurity
La description
L' objet WebSecurity fournit la sécurité et l'authentification pour les applications de pages Web ASP.NET.
Avec l'objet WebSecurity, vous pouvez créer des comptes d'utilisateurs, connecter et déconnecter des utilisateurs, réinitialiser ou modifier des mots de passe, etc.
Référence d'objet WebSecurity - Propriétés
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 |
Référence d'objet WebSecurity - Méthodes
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 |
Initialisation de la base de données WebSecurity
Vous devez créer ou initialiser une base de données WebSecurity avant de pouvoir utiliser l'objet WebSecurity dans votre code.
À la racine de votre site Web, créez une page (ou modifiez la page) nommée _AppStart.cshtml .
Mettez le code suivant dans le fichier :
_AppStart.cshtml
@{
WebSecurity.InitializeDatabaseConnection("Users", "UserProfile",
"UserId", "Email", true);
}
Le code ci-dessus s'exécutera à chaque démarrage du site Web (application). Il initialise la base de données WebSecurity.
"Users" est le nom de la base de données WebSecurity (Users.sdf).
"UserProfile" est le nom de la table de base de données qui contient les informations de profil utilisateur.
"UserId" est le nom de la colonne qui contient les identifiants des utilisateurs (clé primaire).
"Email" est le nom de la colonne qui contient les noms d'utilisateurs.
Le dernier paramètre true est une valeur booléenne indiquant que le profil utilisateur et les tables d'appartenance doivent être créés automatiquement s'ils n'existent pas, sinon false .
Bien que true indique la création automatique des tables de la base de données, la base de données elle-même ne sera pas créée automatiquement. Il doit exister.
La base de données WebSecurity
La table UserProfile contient un enregistrement pour chaque utilisateur, avec un ID utilisateur (clé primaire) et le nom de l'utilisateur (e-mail) :
UserId | |
---|---|
1 | [email protected] |
2 | [email protected] |
3 | [email protected] |
Le tableau Adhésion contiendra des informations d'adhésion sur la date de création de l'utilisateur et si (et quand) l'adhésion a été confirmée.
Un peu comme ceci (certaines colonnes ne sont pas affichées):
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 |
Configuration d'adhésion simple
Vous pouvez obtenir des erreurs lors de l'utilisation de l'objet WebSecurity si votre site n'est pas configuré pour utiliser le système d'appartenance aux pages Web ASP.NET SimpleMembership .
Cela peut se produire si le serveur d'un fournisseur d'hébergement est configuré différemment de votre serveur local. Pour résoudre ce problème, ajoutez l'élément suivant au fichier Web.config du site :
<appSettings>
<add key="enableSimpleMembership" value="true" />
</appSettings>