我不想拥有 ASP.Net 成员(member)提供商提供的安全问题和答案功能,但我确实希望启用丢失/忘记密码页面。
用户可以在此页面输入他/她的电子邮件地址,如果用户已注册,则通过发送到该注册电子邮件地址的链接重置密码,一封电子邮件将发送到该地址
我创建了自定义表来跟踪此类请求、分配给请求的随 secret 钥以及请求的到期日期。然而,在编写实际重置密码的代码时,我意识到似乎没有一种方法可以在不需要使用安全问答位(我没有)的情况下执行类似 ResetPassword(email, newPassword) 的操作。
有什么方法可以通过内置的成员(member)功能简单地重置用户的密码吗?
如果没有,我需要如何完成这项工作?
预先感谢您提供的任何帮助。 -日产
最佳答案
我最终做了以下事情
public string ResetPassword(string email)
{
var m_userName = Membership.GetUserNameByEmail(email);
var m_user = Membership.GetUser(m_userName);
return m_user.ResetPassword();
}
然后我添加了一个新方法来使用这个值来更改密码
public bool ChangeLostPassword(string email, string newPassword)
{
var resetPassword = ResetPassword(email);
var currentUser = Membership.GetUser(Membership.GetUserNameByEmail(email), true);
return currentUser.ChangePassword(resetPassword, newPassword);
}
关于asp.net - 如何不使用 ASP.Net 成员(member)安全问题和答案进行自定义密码恢复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/920334/