ASP.NET Membership&难忘的词

时间:2011-12-28 09:36:00

标签: asp.net-mvc-3 security asp.net-membership

我有一个ASP.NET MVC会员项目,现在我被赋予了实现一个令人难忘的单词的任务。

我做了一些研究,过去几周没有任何研究,所以在这里寻求帮助。

我有http://www.asp.net/web-forms/tutorials/security/admin/recovering-and-changing-passwords-cs及其相应的链接,其中大部分内容都是关于问答的

  

RequiresQuestionAndAnswer

这不是我需要的,这就是我需要的,

  1. 创建用户时,我接受一个6/8字母难忘的单词
  2. 每次登录时,我都需要从令人难忘的单词中询问任意3个字符并且必须匹配
  3. 如果输入的字符错误,他将不得不尝试重新输入相同的3个字符再进行2次尝试,之后我会锁定他的帐户。
  4. 是否有规定要这样做?还是必须实施?

1 个答案:

答案 0 :(得分:0)

除了令人难忘的单词外,您还要求输入密码吗?如果没有,您可以使用会员提供商中的密码属性作为您难忘的单词。

您必须将passwordFormat更改为Encrypted或Clear(我建议加密)。然后,当用户尝试登录时,您将获得该用户的密码。 (这就是密码不能被哈希的原因,因为哈希密码永远不能被解密为原始值。)

获得密码后,应该是一个简单的算法来计算密码是否包含输入的3个字符。如果没有,则返回验证错误。如果是,请编写身份验证cookie并重定向。

<强>更新

由于您还要求输入密码,我认为您无法使用会员提供商来满足此要求。您必须与提供商分开实施。