【发布时间】:2012-08-15 15:32:09
【问题描述】:
我已经构建了 mvc 3 应用程序,我尝试构建忘记密码功能。过程如下。
首先会提示用户输入用户名
如果用户名存在,则会显示安全问题
如果用户输入正确答案,新创建的密码将为 发送到发送时保存在数据库中的电子邮件 注册
这里我已经完成了第二步,也完成了检查答案。我想知道的是创建将发送到电子邮件的新密码的最佳方法是什么。我搜索了创建随机字符串并找到了这个..
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
var random = new Random();
var result = new string(
Enumerable.Repeat(chars, 8)
.Select(s => s[random.Next(s.Length)])
.ToArray());
我认为但不确定是否有机会再次创建相同的随机字符串,因此可能不适合新密码。生成新密码的最佳方法是什么。任何帮助将不胜感激。谢谢!
【问题讨论】:
-
Troy Hunt 写了一篇关于密码重置的博文:Everything you ever wanted to know about building a secure password reset feature
-
你的意思是这是一个临时密码,他必须在第一次登录时更改它?
-
是的,这可能是临时密码,用户在使用新密码登录后具有更改密码功能
-
请不要发送密码,只需通过电子邮件发送重置链接。
-
@KirkBroadhurst - 请阅读 Oded 链接到的文章。它包含对此的讨论。
标签: c# asp.net-mvc-3 forgot-password