Vous n'êtes pas en mesure de changer le mot de passe si le RequiresQuestionAndAnswer = "true"
Je suis le travail autour de ce
a créé deux fournisseurs d'appartenance à web.config
J'utilise le fournisseur AspNetSqlMembershipProviderReset pour la réinitialisation du mot de passe car il a la valeur requiresQuestionAndAnswer = false, alors que 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 psUserName, String psNewPassword) {{ essayer // Obtenir des détails de l'utilisateur à l'aide de membres fournisseur d'appartenances secound avec réponse question obligatoire est définie sur 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;
}
}
Vous devez séparer votre question et ajouter une réponse. –
@ mcqwerty, maintenant nous avons séparé votre réponse, vous devez "accepter" votre propre réponse – harriyott
Beau travail, je l'ai fait avec notre version du contrôle ChangePassword (Admin changer le mot de passe pour les utilisateurs);) – CheGueVerra