2

在我添加的页面上检索忘记的用户名

步骤 1) 输入电子邮件地址(通过电子邮件获取帐户)

第 2 步)验证安全问题(他们提供答案并由我验证)

步骤 3) 向他们发送一封包含用户名的电子邮件

第2步是我卡住的地方。如何使用数据库中存储的内容验证答案?

所有值都经过哈希处理。

我看到发布了与此类似的其他问题,但他们没有回答这个问题,至少不是很清楚。

4

2 回答 2

2

就像你说的,数据库中的值是散列的,所以为了验证用户输入的内容与数据库中的内容相匹配,对用户输入的值进行散列并比较两个散列值。如果它们相等,则验证。

在将答案文本与数据库中的值进行比较之前,您基本上需要对答案文本进行哈希处理。

另外,请注意,有时答案文本会在散列之前用一个值加盐,因此在验证时需要采取相同的步骤。

于 2009-05-19T18:35:35.037 回答
1

查看提供程序,它没有公开任何方法供您执行所需的第二步。

您将需要执行以下操作。

  1. 创建一个存储过程,该过程将根据电子邮件和答案检索结果。
  2. 正如您所提到的,因为答案是散列的,您需要对用户提供的值进行 MD5 散列。(FormsAuthentication.HashPasswordForStoringInConfigFile会为此工作)
  3. 使用所需的参数调用您的存储过程,以验证用户信息是否匹配。
于 2009-05-19T18:39:18.697 回答