Problème, il n'y a pas de méthode:
bool ChangePassword(string newPassword);
Vous devez connaître le mot de passe actuel (qui est probablement haché et oublié).
Problème, il n'y a pas de méthode:
bool ChangePassword(string newPassword);
Vous devez connaître le mot de passe actuel (qui est probablement haché et oublié).
C’est une tâche facile sur laquelle j’ai perdu trop de temps. Espérons que cet article sauve quelqu'un d'autre de la douleur de se gifler le front aussi fort que moi.
Solution, réinitialisez le mot de passe de manière aléatoire et transmettez-le à la méthode de modification.
MembershipUser u = Membership.GetUser();
u.ChangePassword(u.ResetPassword(), "myAwesomePassword");
Vous n'êtes pas en mesure de changer le mot de passe si le requiresQuestionAndAnswer="true"
J'ai obtenu le travail autour de ce
Créé deux fournisseurs d'appartenance dans le web.config
je suis l'aide de la AspNetSqlMembershipProviderReset fournisseur pour mettre à zéro le mot de passe car il a la requiresQuestionAndAnswer= false où, comme AspNetSqlMembershipProvider est le fournisseur par défaut utilisé.
j'ai écrit le code suivant pour réinitialiser le mot de passe pour l'utilisateur.
public bool ResetUserPassword(String nomutilisateurps, Chaîne psNewPassword) { essayez { // Obtenir l'Adhésion des détails sur l'utilisateur à l'aide de secound fournisseur d'appartenances avec nécessaire de répondre à la question la valeur false.
MembershipUser currentUser = Membership.Providers["AspNetSqlMembershipProviderReset"].GetUser(psUserName,false);
//Reset the user password.
String vsResetPassword = currentUser.ResetPassword();
//Change the User password with the required password
currentUser.ChangePassword(vsResetPassword, psNewPassword);
//Changed the comments to to force the user to change the password on next login attempt
currentUser.Comment = "CHANGEPASS";
//Check if the user is locked out and if yes unlock the user
if (currentUser.IsLockedOut == true)
{
currentUser.UnlockUser();
}
Membership.Providers["AspNetSqlMembershipProviderReset"].UpdateUser(currentUser); return true;
}
catch (Exception ex)
{
throw ex;
return false;
}
}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.