当我拨打下面的代码时,我总是得到 result.Succeeded = false
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> ResetPassword(ResetPasswordViewModel model)
{
if (!ModelState.IsValid)
{
return View(model);
}
var user = await UserManager.FindByNameAsync(model.Email);
if (user == null)
{
// Don't reveal that the user does not exist
return RedirectToAction("ResetPasswordConfirmation", "Account");
}
string code = await UserManager.GeneratePasswordResetTokenAsync(user.Id);
var result = await UserManager.ResetPasswordAsync(user.Id, code, model.Password);
//var result = await UserManager.ResetPasswordAsync(user.Id, model.Code, model.Password);
if (result.Succeeded)
{
return RedirectToAction("ResetPasswordConfirmation", "Account");
}
AddErrors(result);
return View();
}
Run Code Online (Sandbox Code Playgroud)
user.Id和Password的值有效.结果错误总是说"无效令牌",我没有看到它,因为我得到它并立即检查它和它的错误.这只是一个健全性测试 - 我通常通过电子邮件将令牌发送给用户,但这也无效.
更新1 我在同一个控制器中定义UserManager,如下所示:
private ApplicationSignInManager _signInManager; …Run Code Online (Sandbox Code Playgroud)