相关疑难解决方法(0)

为什么ResetPasswordAsync不起作用?

当我拨打下面的代码时,我总是得到 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)

asp.net-mvc asp.net-identity

14
推荐指数
1
解决办法
1万
查看次数

标签 统计

asp.net-identity ×1

asp.net-mvc ×1