Восстановить / сбросить потерянные пароли по электронной почте

Я работаю над проектом C # ASP.MVC 4, использующим DefaultMembershipProvider, и пытаюсь найти удобный способ восстановить / сбросить утерянный пароль.

Моя первая попытка состояла в том, чтобы пользователь предоставил свое имя пользователя (которое является действительным адресом электронной почты), после чего приложение сгенерирует случайный пароль (отвечающий нашим требованиям), после чего этот пароль будет отправлен пользователю по электронной почте.

Мое идеальное решение было бы, когда пользователь нажимает кнопку забытого пароля. У них запрашивают имя пользователя, которое при получении может привести к отправке электронного письма с URL-адресом (к этому URL-адресу также будет прикреплена дата истечения срока действия). Это решение также сбрасывает пароль пользователя внутри приложения (перед отправкой электронного письма). Когда пользователь нажимает на URL, он автоматически входит в систему и отправляется в форму смены пароля. Есть ли проблемы с этим решением?

Для конфигурации у меня установлены следующие значения:

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

Ответы на вопрос(2)

Ваш ответ на вопрос