如何在ASP.NET中实现密码恢复链接?

And*_*ose 5 asp.net security passwords

我正在寻找关于在ASP.NET中实现密码恢复服务的一些指导,该服务通过电子邮件发送到用户的链接,该链接将它们发送到密码重置页面,因为我不想以明文形式通过电子邮件发送现有或重新生成的密码.
我已经看到了使用成员id作为查询字符串参数的一些建议,但是我觉得这可能会被滥用,因为我正在使用的自定义成员资格表使用guid的ints intead作为id字段.
我想我需要创建一个包含唯一(长)id的自定义表以及每次用户请求密码恢复时填充的成员ID.然后,此ID将作为密码重置页面链接中查询字符串的一部分传递.当用户点击链接时,页面将在自定义表中查找id并从中获取成员ID,允许用户更改该成员资格的密码.
这看起来像是一种有效的方法; 这有点难过吗?任何其他建议将不胜感激.

Jos*_*hua 3

我就是这样处理的。但完成后不要忘记从数据库中删除该行并实施某种洪水控制。我知道 guid 的组合有很多(字面上的),但运行一个简单的 IP 检查与过去 5 分钟内的尝试次数并在 x 次尝试后阻止它们可以帮助提高重置的安全性。您的用户群越大,并且他们忘记密码的频率越高,这一点就变得越重要。