ASP.NET Web Pages - Objet WebSecurity

Description

L'objet WebSecurity fournit la sécurité et l'authentification pour les applications ASP.NET Web Pages.

Grâce à l'objet WebSecurity, vous pouvez créer des comptes d'utilisateurs, vous connecter et vous déconnecter, réinitialiser ou changer des mots de passe, etc.

Manuel de référence de l'objet WebSecurity - Propriétés

Propriété Description
CurrentUserId Obtient l'ID de l'utilisateur actuel.
CurrentUserName Obtient le nom de l'utilisateur actuel.
HasUserId Obtient la valeur indiquant si l'utilisateur actuel a un ID utilisateur. Si oui, retourne true.
IsAuthenticated Obtient l'état d'authentification de l'utilisateur actuel.

Manuel de référence de l'objet WebSecurity - Méthodes

Propriété Description
ChangePassword() Change le mot de passe de l'utilisateur.
ConfirmAccount() Confirme que le compte est valide et active le compte.
CreateAccount() Crée un nouveau compte utilisateur.
CreateUserAndAccount() Crée un nouveau compte utilisateur.
GeneratePasswordResetToken() Génère un jeton de réinitialisation de mot de passe que l'on peut envoyer par e-mail à l'utilisateur.
GetCreateDate() Retourne la date et l'heure de création du compte de membre spécifié.
GetPasswordChangeDate() Retourne la date et l'heure de la dernière modification du mot de passe du compte de membre spécifié.
GetPasswordFailures
SinceLastSuccess()
Retourne le nombre de tentatives d'erreur de mot de passe depuis le dernier login réussi ou la création d'un compte de membre.
GetUserId() Retourne l'ID utilisateur en fonction du nom d'utilisateur spécifié.
GetUserIdFrom
PasswordResetToken ()
Retourne l'ID utilisateur à partir du jeton de réinitialisation de mot de passe.
InitializeDatabaseConnection() Initialisez le système de membership en se connectant à la base de données contenant les informations utilisateur.
IsAccountLockedOut() Indique si le compte de membership spécifié a été verrouillé en raison du trop grand nombre de tentatives de mot de passe.
IsConfirmed() Retourne une valeur indiquant si l'utilisateur a été confirmé.
IsCurrentUser() Retourne une valeur indiquant si le nom d'utilisateur de l'utilisateur connecté correspond au nom d'utilisateur spécifié.
Login() Connectez l'utilisateur.
Logout() Déconnectez l'utilisateur.
RequireAuthenticatedUser() Si l'utilisateur n'est pas authentifié, configurez le statut HTTP à 401 (non autorisé).
RequireRoles() Si l'utilisateur actuel ne fait pas partie du rôle spécifié, configurez le code de statut HTTP à 401.
RequireUser() Si l'utilisateur actuel n'est pas l'utilisateur spécifié, configurez le statut HTTP à 401.
ResetPassword() Réinitialisez le mot de passe en utilisant le jeton de réinitialisation de mot de passe.
UserExists() Vérifiez si l'utilisateur existe.

Technical Data

Name Value
Class WebMatrix.WebData.WebSecurity
Namespace WebMatrix.WebData
Assembly WebMatrix.WebData.dll

Initialiser la base de données WebSecurity

Avant d'utiliser l'objet WebSecurity, vous devez créer ou initialiser la base de données WebSecurity.

Dans le répertoire de serveur web, créez ou éditez la page _AppStart.cshtml.

Écrivez le code suivant dans ce fichier :

_AppStart.cshtml

@{
WebSecurity.InitializeDatabaseConnection("Users", "UserProfile", "UserId", "Email", 
true);
}

Le site exécute ce code à chaque démarrage. 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 contenant les informations de configuration utilisateur.

"UserId" contient le nom de la colonne contenant l'ID utilisateur (clé principale).

"Email" est le nom de la colonne contenant le nom d'utilisateur.

Le dernier paramètre true est une valeur logique indiquant qu'il faut créer les tables de profil utilisateur et de certification (si elles n'existent pas), sinon false.

Conseil : Bien que true indique la création automatique des tables de base de données, la base de données elle-même n'est pas créée automatiquement. Elle doit exister.

Base de données WebSecurity

Chaque enregistrement de la table UserProfile représente un utilisateur, y compris l'ID utilisateur (clé principale) et le nom d'utilisateur (email) :

UserId Email
1 john@johnson.net
2 peter@peterson.com
3 lars@larson.eut

La table Membership contient des informations de certification, telles que le moment où l'utilisateur a été créé et s'il (et quand) a confirmé la certification.

Similaire à cela (certains colonnes ne sont pas répertoriées) :

UserId Date de création Confirmation
Token
Si
Confirmation
Dernier
Erreur de mot de passe
Mot de passe Changement de mot de passe
1 12.04.2012 16:12:17 NULL True NULL AFNQhWfy.... 12.04.2012 16:12:17

Remarque :Si vous souhaitez voir toutes les colonnes et tous les contenus, ouvrez la base de données via WebMatrix, puis consultez chaque table.

Configuration de certification simple

Si votre site n'est pas configuré pour utiliser le système de certification ASP.NET Web Pages SimpleMembership, vous pourriez rencontrer des erreurs lors de l'utilisation de l'objet WebSecurity.

Si la configuration du fournisseur d'hébergement est différente de votre serveur local, une erreur peut se produire. Pour résoudre ce problème, ajoutez les éléments suivants au fichier Web.config du site :

<appSettings> 
<add key="enableSimpleMembership" value="true" /> 
</appSettings>