Comment contrôler le format MembershipUser.ResetPassword ()
-
06-07-2019 - |
Question
Est-il possible de contrôler le format du mot de passe généré automatiquement par un appel à MembershipUser.ResetPassword ()?
Je veux pouvoir autoriser ou non certains caractères spéciaux dans le mot de passe généré.
J'utilise SqlMembershipProvider avec le format de mot de passe Hashed.
Merci.
La solution
Consultez cet article - Modification du format du mot de passe généré automatiquement dans SqlMembershipProvider .
J'ai trouvé un moyen rapide de pirater SqlMembershipProvider pour générer des mots de passe moins complexes. Il s'agissait simplement de créer une nouvelle classe de fournisseur héritant de SqlMembershipProvider, puis de remplacer la méthode GeneratePassword.
Ce n'est pas une solution entièrement résolue mais cela pourrait aider.
Autres conseils
Vous pouvez effectuer cette opération en deux étapes, identifiées par Mark Fitzpatrick ici: http://bytes.com/groups/net-asp/689452-how-reset-users-password-without-having-use-passwordrecovery#post2740740
D'abord, réinitialisez le mot de passe, puis changez-le immédiatement dans un format de votre choix. Évidemment, il ne serait PAS recommandé d'utiliser une chaîne fixe comme dans l'exemple de Mark. Vous souhaitez implémenter un générateur de chaîne aléatoire .
user.ChangePassword(user.ResetPassword(), MyMethodToGenerateRandomPassword());
Aujourd'hui, vous pouvez également utiliser la méthode Membership.GeneratePassword
et transmettre un MinRequiredPasswordLength
ou utiliser la propriété déjà définie dans Web.config comme suit:
var newPassword =
// 0 = Number of non alphanumeric characters
Membership.GeneratePassword(Membership.MinRequiredPasswordLength, 0);
user.ChangePassword(user.ResetPassword(), newPassword);
J'espérais que certains paramètres de configuration pourraient être utilisés, mais le remplacement de la méthode GeneratePassword () fonctionne dans mon cas.
Nous avions déjà une classe d’utilitaire de chiffrement qui générerait les chaînes de mots de passe aléatoires, ce qui en faisait un changement assez rapide.