Je cherche des conseils sur l'implémentation d'un service de récupération de mot de passe dans ASP.NET qui envoie un lien à l'utilisateur qui les envoie à une page de réinitialisation de mot de passe.
J'ai vu quelques suggestions d'utilisation de l'ID de membre comme paramètre de chaîne de requête mais je pense que cela peut être abusif car la table d'appartenance personnalisée avec laquelle je travaille utilise ints en tant que champ id.
Je pense que j'ai besoin de créer une table personnalisée contenant un identifiant unique (long) avec l'identifiant de membre qui est rempli chaque fois qu'un utilisateur demande une récupération de mot de passe. Cet identifiant sera ensuite transmis dans le cadre de la chaîne de requête dans le lien vers la page de réinitialisation du mot de passe. Lorsqu'un utilisateur clique sur le lien, la page recherchera l'identifiant dans la table personnalisée et obtiendra l'identifiant de membre à partir de là, permettant à l'utilisateur de changer le mot de passe par rapport à cette appartenance.
Est-ce que cela semble être une approche valable? est-ce exagéré? Toute autre suggestion serait la bienvenue.Comment implémenter un lien de récupération de mot de passe dans ASP.NET?
Répondre
Ce serait comment je le manipulerais. Mais n'oubliez pas de retirer la ligne de la base de données lorsque vous avez terminé et mettez en place une sorte de contrôle d'inondation. Je sais qu'il y a des tonnes (littéralement) de combinaisons pour les guids mais une simple vérification d'IP contre combien de tentatives dans les 5 dernières minutes et les bloquer après x nombre de tentatives pourrait aider à augmenter la sécurité de la réinitialisation. Cela devient d'autant plus important que votre base d'utilisateurs est plus grande et à quelle fréquence ils oublient leurs mots de passe.
Sons parfaitement réparables. Ma seule recommandation serait d'utiliser une valeur calculée au lieu d'un ID aléatoire pour le lien d'email. Peut-être une version hachée du nom d'utilisateur de la personne? Ceci est purement dû à mon dédain pour les nombres aléatoires. :)
Lisez ceci: Best Practices for your "Forgot Password" feature.
Cela devrait être assez clair.
EDIT: lien mis à jour.
Quelqu'un était assez agréable de faire en CodeProject déjà: http://www.codeproject.com/KB/aspnet/Password_Recovery.aspx
Ce lien est rompu. –
Lien mis à jour ... – jinsungy