ASP.NET Web Pages - Objet WebSecurity


Description

Objet WebSecurityFournit la sécurité et l'authentification pour les applications ASP.NET Web Pages.

Grâce à l'objet WebSecurity, vous pouvez créer des comptes utilisateur, connecter et déconnecter des utilisateurs, réinitialiser ou modifier des mots de passe, et bien d'autres fonctions liées à la sécurité.


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

Propriétés Description
CurrentUserId Obtient l'ID de l'utilisateur actuellement connecté.
CurrentUserName Obtient le nom de l'utilisateur actuellement connecté.
HasUserId Renvoie true s'il existe un ID d'utilisateur actuel.
IsAuthenticated Renvoie true si l'utilisateur actuel est connecté.

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

Méthodes Description
ChangePassword() Modifie le mot de passe de l'utilisateur spécifié.
ConfirmAccount() Confirme un compte à l'aide d'un jeton de confirmation de 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 qui peut être envoyé à l'utilisateur par e-mail afin que celui-ci puisse réinitialiser son mot de passe.
GetCreateDate() Obtient l'heure à laquelle l'appartenance spécifiée a été créée.
GetPasswordChangeDate() Obtient la date et l'heure auxquelles le mot de passe a été modifié.
GetUserId() Obtient l'ID utilisateur en fonction du nom d'utilisateur.
InitializeDatabaseConnection() Initialise le système WebSecurity (base de données).
IsConfirmed() Vérifie si un utilisateur a été confirmé. Retourne true s'il est confirmé. (Par exemple, la confirmation peut être effectuée par e-mail.)
IsCurrentUser() Vérifie si le nom de l'utilisateur actuel correspond au nom d'utilisateur spécifié. Retourne true si c'est le cas.
Login() Définit le jeton d'authentification et connecte l'utilisateur.
Logout() Supprime le jeton d'authentification et déconnecte l'utilisateur.
RequireAuthenticatedUser() Définit le statut HTTP sur 401 (Non autorisé) si l'utilisateur n'est pas authentifié.
RequireRoles() Définit le statut HTTP sur 401 (Non autorisé) si l'utilisateur actuel n'est pas membre du rôle spécifié.
RequireUser() Définit le statut HTTP sur 401 (Non autorisé) si l'utilisateur actuel n'est pas l'utilisateur ayant le nom d'utilisateur spécifié.
ResetPassword() Si le jeton de réinitialisation du mot de passe est valide, remplace le mot de passe de l'utilisateur par un nouveau mot de passe.
UserExists() Vérifie si l'utilisateur spécifié existe.


Données techniques

Name Valeur
Classe WebMatrix.WebData.WebSecurity
Espace de noms WebMatrix.WebData
Assembly WebMatrix.WebData.dll


Initialiser la base de données WebSecurity

Si vous souhaitez utiliser l'objet WebSecurity dans votre code, vous devez d'abord créer ou initialiser la base de données WebSecurity.

Dans votre répertoire racine web, créez une page nommée_AppStart.cshtmlla page (si elle existe déjà, modifiez directement la page).

Copiez le code suivant dans le fichier :

_AppStart.cshtml

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

Le code ci-dessus s'exécutera chaque fois que le site web (application) démarre. 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 l'ID utilisateur (clé primaire).

"Email"Est le nom de la colonne qui contient le nom d'utilisateur.

Le dernier paramètretrueEst une valeur booléenne qui indique que si la table de profil utilisateur et la table d'appartenance n'existent pas, les tables seront créées automatiquement. Si vous ne voulez pas créer les tables automatiquement, définissez le paramètre surfalse。

lamp Bien quetruesignifie la création automatique de la base de donnéesTable, mais la base de données ne sera pas créée automatiquement. Par conséquent, la base de données doit exister.


Base de données WebSecurity

UserProfileLa table crée et sauvegarde un enregistrement pour chaque utilisateur, avec l'ID utilisateur (clé primaire) et le nom d'utilisateur (e-mail) :

UserId E-mail
1 [email protected]
2 [email protected]
3 [email protected]

MembershipLa table contient des informations d'adhésion, comme la date à laquelle l'utilisateur a été créé, si l'adhésion a été confirmée, quand l'adhésion a été confirmée, etc.

Les détails sont les suivants (certaines colonnes ne sont pas affichées) :

Utilisateur
Id
Créez
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

Remarque : Si vous souhaitez voir toutes les colonnes et tout le contenu, ouvrez la base de données et regardez chaque table à l'intérieur.


Configuration de Simple Membership

Lorsque vous utilisez l'objet WebSecurity, si votre site n'est pas configuré pour utiliser le système d'adhésion ASP.NET Web PagesSimpleMembership, une erreur peut se produire.

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

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


Autres extensions