Comment : activer la récupération du mot de passe utilisateur à l'aide du contrôle PasswordRecovery ASP.NET
Mise à jour : novembre 2007
Si votre application utilise l'appartenance (membership) d'ASP.NET pour l'authentification, vous pouvez activer la récupération de mot de passe dans votre application à l'aide du contrôle PasswordRecovery. Votre application envoie aux utilisateurs leur mot de passe actuel ou un nouveau mot de passe, selon la configuration de votre fournisseur d'appartenances. Comme, par défaut, ASP.NET hache les mots de passe à l'aide d'une méthode de chiffrement non réversible, un nouveau mot de passe est envoyé à l'utilisateur. Si votre fournisseur d'appartenances est configuré pour chiffrer ou stocker les mots de passe en texte clair (cette configuration est déconseillée), c'est le mot de passe actuel de l'utilisateur qui est envoyé.
Pour récupérer un mot de passe, votre application doit être capable d'envoyer un message électronique à l'utilisateur. Elle doit dès lors être configurée avec le nom d'un serveur SMTP auquel elle peut transférer des messages électroniques. Pour plus d'informations, consultez la classe SmtpClient et Comment : installer et configurer des serveurs virtuels SMTP dans IIS 6.0.
Pour activer la récupération de mot de passe
Créez ou modifiez une page Web ASP.NET de votre site accessible aux utilisateurs anonymes (par exemple, RecoverPassword.aspx). Dans un site Web authentifié, vous pouvez utiliser l'élément de configuration location pour spécifier l'accès anonyme à une page, comme l'illustre l'exemple suivant :
<configuration> <location path="RecoverPassword.aspx"> <system.web> <authorization> <allow users="?" /> </authorization> </system.web> </location> <system.web> <authentication mode="Forms" > <forms loginUrl="UserLogin.aspx" /> </authentication> <authorization> <deny users="?" /> </authorization> </system.web> </configuration>
Placez un contrôle PasswordRecovery dans la page comme illustré dans l'exemple suivant :
<asp:PasswordRecovery ID="PasswordRecovery1" Runat="server"> </asp:PasswordRecovery>
Vous pouvez éventuellement configurer les modèles suivants pour personnaliser l'apparence de ce contrôle PasswordRecovery : UserNameTemplate, QuestionTemplate et SuccessTemplate.