Domanda

Non voglio avere la domanda di sicurezza e rispondere caratteristica che Provider ASP.Net iscrizione dà, ma io voglio consentire una pagina password persa / dimenticata.

Questa pagina sarebbe in cui un utente potrebbe entrare nella sua / il suo indirizzo email e una e-mail sarebbe stata inviata a questo indirizzo se l'utente è stato registrato per loro di reimpostare la password tramite un link inviato a questo indirizzo e-mail registrato

Ho creato la tabella personalizzata per monitorare tali richieste, la chiave casuale assegnato alla richiesta, così come una data di scadenza in merito alla richiesta. Tuttavia nella scrittura del codice per reimpostare in realtà la password, mi sono reso conto che non sembra essere un metodo che fa qualcosa di simile ResetPassword (e-mail, newPassword) senza la necessità di utilizzare la Sicurezza Q & A bit (che non ho).

C'è un modo per ripristinare semplicemente la password di un utente tramite un costruito in funzione di appartenenza?

Se no, come avrei bisogno di ottenere questo fatto?

Grazie in anticipo per qualsiasi aiuto dato. -Nissan

È stato utile?

Soluzione

Quello che ho finito per fare è stato il seguente

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

Poi ho aggiunto un nuovo metodo per utilizzare questo valore per modificare la password

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

    }

Altri suggerimenti

Perché non si fa a cambiare questa opzione nel web.config?

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

in

<membership>
   <providers>
      <clear/>
      <add name="AspNetSqlMembershipProvider" ...
      ..........
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top