我正在开发一个使用 DefaultMembershipProvider 的 C# ASP.MVC 4 项目,并且我试图想出一种用户友好的方式来恢复/重置丢失的密码。
我的第一次尝试是让用户提供他们的用户名(这是一个有效的电子邮件地址),然后应用程序会生成一个随机密码(满足我们的要求),然后将该密码通过电子邮件发送给用户。
我理想的解决方案是当用户单击忘记密码按钮时。他们被要求提供他们的用户名,当提供该用户名时,将发送一封带有 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>