Comment ne pas utiliser Question de sécurité ASP.Net membres et réponses pour la récupération de mot de passe personnalisé?

StackOverflow https://stackoverflow.com/questions/920334

Question

Je ne veux pas avoir la question de la sécurité et de répondre à fonctionnalité fournisseur d'appartenances ASP.Net donne, mais je ne veux permettre une page de mot de passe perdu / oublié.

Cette page serait le cas où un utilisateur entrer dans sa / son adresse e-mail et un courriel sera envoyé à cette adresse si l'utilisateur leur a été enregistré pour réinitialiser leur mot de passe via un lien envoyé à cette adresse e-mail enregistrée

Je l'ai créé le tableau personnalisé pour suivre ces demandes, la clé aléatoire attribué à la demande ainsi qu'une date d'expiration de la demande. Cependant, par écrit, le code pour réinitialiser réellement le mot de passe, je me suis aperçu qu'il ne semble pas être une méthode qui fait quelque chose comme ResetPassword (email, newPassword) sans avoir besoin d'utiliser la sécurité Q & A bit (que je n'ai pas).

Est-il possible de simplement réinitialiser le mot de passe d'un utilisateur via une fonction intégrée d'adhésion?

Sinon, comment aurais-je besoin d'obtenir ce fait?

Merci d'avance pour toute aide donnée. -Nissan

Était-ce utile?

La solution

Ce que je fini par faire était le suivant:

public string ResetPassword(string email)
        {
            var m_userName = Membership.GetUserNameByEmail(email);
            var m_user = Membership.GetUser(m_userName);
            return m_user.ResetPassword();
        }

alors j'ajouté une nouvelle méthode pour utiliser cette valeur pour changer le mot de passe

public bool ChangeLostPassword(string email, string newPassword)
    {
        var resetPassword = ResetPassword(email);
        var currentUser = Membership.GetUser(Membership.GetUserNameByEmail(email), true);
        return currentUser.ChangePassword(resetPassword, newPassword);

    }

Autres conseils

Pourquoi ne pas modifier cette option dans web.config?

         enablePasswordRetrieval="false"
         enablePasswordReset="true"
         requiresQuestionAndAnswer="false"

<membership>
   <providers>
      <clear/>
      <add name="AspNetSqlMembershipProvider" ...
      ..........
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top