只有当用户提供的问题和答案为真时,我才想重置用户的密码。我使用带有 passwordanswer 参数的 resetpassword 方法。但仍然总是重置密码,但是密码答案不正确。:(
只有当用户提供正确的问题和答案时,我才能重置?这是我的代码:
try
{
MembershipUser user = Membership.GetUser(Membership.GetUserNameByEmail(txtEmail.Text));
if (user != null)
{
if (user.PasswordQuestion == ddlSecurityQuestion.SelectedIndex.ToString())
{
user.ChangePassword(user.ResetPassword(txtSecurityQuestionAnswer.Text), txtNewPassword.Text);
lblError.Text = Resources.Titles.DearUser + user.UserName + Resources.Messages.PasswordRecoveryDone;
}
else
{
lblError.Text = Resources.Messages.QuestionAnswerIsInvalid;
return;
}
}
else
{
lblError.Text = Resources.Messages.EmailIsInvalid;
return;
}
}
catch
{
lblError.Text = Resources.Messages.QuestionAnswerIsInvalid;
throw;
}
但总是重置。当我的密码经过哈希处理且无法获取密码时,我不知道如何检查密码答案。