因此,RequiresQuestionAndAnswer为false,用户登录并被提示设置自己的安全密码和答案(我自己编码但是使用了一些成员资格方法来存储信息),这些密码成功存储在数据库的DB中aspnet_membership表,就像最初使用密码问题和答案创建用户一样。
然后,在ForgotYourPassword页面上,当尝试使用Membership.Provider.GetPassword(username,passwordanswer)时,即使密码答案错误,也会生成密码。
这似乎是aspnet的一个错误,因为将RequiresQuestionAndAnswer设置为false对我意味着:
“我不需要这个来创建用户,但我仍然可以使用它。”
而asp.net意味着:
“我不需要这个来创建用户,我永远不会使用它,所以它将被忽略。”
任何人都知道如何解决这个问题?我需要能够确认提供的安全答案是否正确并重置或获取用户的密码。我使用的加密密码没有散列,因此应该可以进行检索。
答案 0 :(得分:1)
正如您可能在此发现的那样,内置提供商的灵活性有限。解决此问题的最佳方法是让您的应用在幕后生成问题和答案,以便您可以通过它。