c# – 通过电子邮件恢复/重置丢失的密码选项

前端之家收集整理的这篇文章主要介绍了c# – 通过电子邮件恢复/重置丢失的密码选项前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用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>

解决方法

首先,这里有两个必读[我再说一遍,必读]:

> Everything you ever wanted to know about building a secure password reset feature
> You’re Probably Storing Passwords Incorrectly

话虽如此,OWASP有一些关于如何实现身份验证的指导,您可以在他们的Authentication Cheat Sheet开始,对于您的特定情况Forgot Password Cheat Sheet.这也可以说是必读.如果你不打算关注OWASP,我希望这是因为你决定,而不是因为你不知道更好.

无论如何,最好的摘要是后面的图像(取自上面的第一个链接),如果你只想记住一件事,就这样:

猜你在找的C#相关文章