我想手动验证 ASP.NET Identity 2.0 中的密码重置令牌。我正在尝试创建自己的版本,UserManager.ResetPasswordAsync(string userId, string token, string newPassword)
而IdentityUser
不是userId
这样:
UserManager.ResetPasswordAsync(IdentityUser user, string token, string newPassword)
不确定我这样做是否正确,但在这里我试图验证在前面的步骤中通过电子邮件发送给用户的代码。我没有修改将电子邮件发送给用户并生成代码的代码/令牌。我假设这是正确的调用方法,但purpose
参数不正确。(我尝试传递“ASP.NET Identity”但没有骰子。)
if (await userManager.UserTokenProvider.ValidateAsync(purpose: "?", token: code, manager: userManager, user: user))
{
return IdentityResult.Success;
}
else
{
return new IdentityResult("Invalid code.");
}
如果有人可以向我提供开箱即用的工作原理的详细信息,或者将我指向 Microsoft 的源代码UserManager.ResetPasswordAsync(IdentityUser user, string token, string newPassword)
,将不胜感激!