Optionen zum Wiederherstellen / Zurücksetzen verlorener Kennwörter per E-Mail

Ich arbeite an einem C # ASP.MVC 4-Projekt, das den DefaultMembershipProvider verwendet, und ich versuche, eine benutzerfreundliche Methode zum Wiederherstellen / Zurücksetzen eines verlorenen Kennworts zu finden.

Mein erster Versuch war, den Benutzer dazu zu bringen, seinen Benutzernamen (der eine gültige E-Mail-Adresse ist) anzugeben. Die Anwendung generierte dann ein zufälliges Kennwort (entspricht unseren Anforderungen). Dieses Kennwort wurde dann per E-Mail an den Benutzer gesendet.

Meine ideale Lösung wäre, wenn ein Benutzer auf die Schaltfläche "Passwort vergessen" klickt. Sie werden nach ihrem Benutzernamen gefragt. Wenn dieser angegeben wird, wird eine E-Mail mit einer URL gesendet (an diese URL wird auch ein Ablaufdatum angehängt). Diese Lösung setzt auch das Benutzerpasswort in der Anwendung zurück (vor dem Senden der E-Mail). Wenn der Benutzer auf die URL klickt, wird er automatisch angemeldet und an das Formular zum Ändern des Kennworts gesendet. Gibt es Probleme mit dieser Lösung?

Für die Konfiguration habe ich folgende Werte eingestellt:

<membership defaultProvider="DefaultMembershipProvider">
  <providers>
    <clear />
    <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" 
         enablePasswordRetrieval="false" 
         enablePasswordReset="true" 
         requiresQuestionAndAnswer="false" 
         requiresUniqueEmail="false" 
         maxInvalidPasswordAttempts="5" 
         minRequiredPasswordLength="6" 
         minRequiredNonalphanumericCharacters="0" 
         passwordAttemptWindow="10" 
         applicationName="/" />
  </providers>
</membership>

Antworten auf die Frage(2)

Ihre Antwort auf die Frage