在我添加的页面上检索忘记的用户名
步骤 1) 输入电子邮件地址(通过电子邮件获取帐户)
第 2 步)验证安全问题(他们提供答案并由我验证)
步骤 3) 向他们发送一封包含用户名的电子邮件
第2步是我卡住的地方。如何使用数据库中存储的内容验证答案?
所有值都经过哈希处理。
我看到发布了与此类似的其他问题,但他们没有回答这个问题,至少不是很清楚。
在我添加的页面上检索忘记的用户名
步骤 1) 输入电子邮件地址(通过电子邮件获取帐户)
第 2 步)验证安全问题(他们提供答案并由我验证)
步骤 3) 向他们发送一封包含用户名的电子邮件
第2步是我卡住的地方。如何使用数据库中存储的内容验证答案?
所有值都经过哈希处理。
我看到发布了与此类似的其他问题,但他们没有回答这个问题,至少不是很清楚。
就像你说的,数据库中的值是散列的,所以为了验证用户输入的内容与数据库中的内容相匹配,对用户输入的值进行散列并比较两个散列值。如果它们相等,则验证。
在将答案文本与数据库中的值进行比较之前,您基本上需要对答案文本进行哈希处理。
另外,请注意,有时答案文本会在散列之前用一个值加盐,因此在验证时需要采取相同的步骤。
查看提供程序,它没有公开任何方法供您执行所需的第二步。
您将需要执行以下操作。
FormsAuthentication.HashPasswordForStoringInConfigFile
会为此工作)