Odzyskaj / Zresetuj utracone opcje hasła za pośrednictwem poczty e-mail

Pracuję nad projektem C # ASP.MVC 4, korzystając z DefaultMembershipProvider i próbuję stworzyć przyjazny dla użytkownika sposób na odzyskanie / zresetowanie utraconego hasła.

Moja pierwsza próba polegała na tym, aby użytkownik podał swoją nazwę użytkownika (która jest prawidłowym adresem e-mail), a następnie aplikacja wygeneruje losowe hasło (spełniające nasze wymagania), a następnie hasło zostanie wysłane do użytkownika.

Moim idealnym rozwiązaniem byłoby, gdy użytkownik kliknie przycisk „Zapomniałem hasła”. Zostają poproszeni o podanie nazwy użytkownika, która, jeśli zostanie podana, spowoduje wysłanie wiadomości e-mail z adresem URL (do tego adresu URL zostanie również dołączona data ważności). To rozwiązanie resetuje również hasło użytkownika wewnątrz aplikacji (przed wysłaniem wiadomości e-mail). Gdy użytkownik kliknie adres URL, zostanie automatycznie zalogowany i wysłany do formularza zmiany hasła. Czy są problemy z tym rozwiązaniem?

Dla konfiguracji mam następujące wartości:

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

questionAnswers(2)

yourAnswerToTheQuestion