2

Je ne souhaite pas utiliser la fonction de questions et réponses de sécurité fournie par ASP.Net Membership Provider, mais je souhaite activer une page de mot de passe perdu/oublié.Comment ne pas utiliser la question et la réponse relatives à la sécurité de l'adhésion ASP.Net pour la récupération de mot de passe personnalisée?

Cette page serait 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

J'ai créé la table personnalisée pour suivre ces demandes, la clé aléatoire affectée à la demande ainsi qu'une date d'expiration sur la demande. Cependant en écrivant le code pour réellement réinitialiser le mot de passe, j'ai réalisé qu'il ne semble pas y avoir une méthode qui fait quelque chose comme ResetPassword (email, newPassword) sans avoir besoin d'utiliser la sécurité Q & Un peu (que je n'ai pas).

Y a-t-il un moyen de réinitialiser simplement le mot de passe d'un utilisateur via une fonction d'adhésion intégrée?

Sinon, comment aurais-je besoin de faire cela?

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

Répondre

3

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(); 
     } 

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); 

    } 
3

Pourquoi ne pas changer cette options dans web.config?

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

dans

<membership> 
    <providers> 
     <clear/> 
     <add name="AspNetSqlMembershipProvider" ... 
     .......... 
+0

Cette étape faisait partie de la solution que je publiais, mais n'a pas été la solution elle-même. Changer le web.config m'aurait encore laissé sans la méthode pour changer un mot de passe en le passant et le nom d'utilisateur seul à une méthode d'adhésion. La solution que j'ai publiée a donné cette solution. Merci pour la contribution cependant. – Nissan

Questions connexes