Recuperar / Redefinir opções de senha perdida por email
Eu estou trabalhando em um projeto c # asp.vmv 4 fazendo uso do DefaultMembershipProvider e estou tentando chegar a uma maneira amigável para recuperar / redefinir uma senha perdida.
Minha primeira tentativa foi fazer com que o usuário fornecesse seu nome de usuário (que é um endereço de e-mail válido); o aplicativo geraria uma senha aleatória (atendendo aos nossos requisitos), que a senha seria enviada ao usuário por e-mail.
Minha solução ideal seria que, quando um usuário clicasse no botão "Esqueci minha senha". Eles são solicitados a fornecer seu nome de usuário que, quando fornecido, faria com que um e-mail fosse enviado com um URL (esse URL também terá uma data de expiração anexada a ele). Essa solução também redefine a senha do usuário dentro do aplicativo (antes de enviar o email). Quando o usuário clica no URL, ele é automaticamente conectado e enviado para o formulário de alteração de senha. Existem problemas com esta solução?
Para configuração, tenho os seguintes valores configurados:
<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>