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 Email
1 [email protected]
[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>