i code dans c # (ASP.NET) et utilisez l'authentification des formulaires.
J'aimerais savoir quelle est la meilleure méthode pour modifier un mot de passe de l'utilisateur sans utiliser le contrôle ASP: Changepassword.
Je ne veux pas utiliser la méthode de réinitialisation du mot de passe.
Je veux juste attraper le mot de passe que j'ai dans ma zone de texte et le remplacer par mon mot de passe plus ancien.
Veuillez noter que le mot de passeformat que j'utilise est PasswordFormat = "haché"
Certains extraits de code seraient utiles de
de
Edit:
dans mon web.config, j'ai défini enablepasswordreRieval = "faux" Cela me donne l'erreur, P> Ce fournisseur d'adhésion n'a pas été
Configuré pour supporter le mot de passe
récupération. p>
blockQuote> Que pourrait-on faire pour résoudre ces problèmes?
J'aimerais vraiment que mon mot de passe Passwormat soit haché lui-même. P> Cordialement,
J'ai utilisé la méthode suivante p>
Naveen Jose
P> P>
5 Réponses :
en supposant que vous utilisez les trucs de sécurité ASP.NET. P>
system.web.security. MembresProvider.Changepassword Code>
Méthode P>
Seule la valeur de hachage pour les mots de passe est généralement stockée par le fournisseur d'adhésion ASP.NET, il n'est donc pas possible de récupérer le mot de passe d'origine. Il est possible de modifier ce comportement par configuration, mais il n'est pas recommandé.
Demandez simplement à l'utilisateur d'entrer également l'ancien mot de passe tout en modifiant le mot de passe. Vous pouvez utiliser l'ancien mot de passe saisi par l'utilisateur dans la méthode utilisateur.changepassword et cela devrait fonctionner correctement. P>
Mon intention était de créer un mot de passe de récupération pour les mots de passe perdus
Je l'ai résolu. Merci à mon collègue développeur.
var myUser = Membership.GetUser(userID); bool isChangeSuccess = myUser.ChangePassword( myUser.ResetPassword(), ActivateUserPasswordText.Text.Trim());
Il renvoie une chaîne avec un nouveau mot de passe aléatoire msdn.microsoft.com/en-us/library/...
@ Jphellemons: j'ai dit que je pensais :)
Ce fournisseur d'adhésion n'a pas été configuré pour prendre en charge la récupération du mot de passe. P>
Le message ci-dessus est affiché car votre format de mot de passe sera du sel et de sorte que vous ne puissiez pas obtenir le mot de passe de l'utilisateur. Si vous voulez faire cela, changez le format de mot de passe et réessayez. P>
Merci Dileep. J'étais plus curieux sur la façon de récupérer l'ancien mot de passe et ChangePassword code> nécessite un mot de passe ancien comme paramètre.
sur la chance d'intervalle que quelqu'un utilise l'utilisation de l'utilisateur et non l'adhésion - comme je l'ai été parce que je ne voulais pas définir de fournisseur d'adhésion - vous pouvez modifier le mot de passe de cette façon:
Dim manager = New UserManager() Dim userChange As ApplicationUser = manager.FindById(IDUser) userChange.PasswordHash = manager.PasswordHasher.HashPassword(newPassword.Value) Dim val As Object = manager.Update(userChange)