更改密码时找不到用户

时间:2016-11-07 21:43:14

标签: asp.net-mvc

导致它产生“User Not Found”错误的以下代码有什么问题。该代码的目的是允许登录用户更改其密码。

[Authorize]
public partial class TestController : Controller
{
    UserManager<IdentityUser> userManager =
new UserManager<IdentityUser>(new UserStore<IdentityUser>());

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult ChangePass(ChangePassTestVM model)
    {
        if (ModelState.IsValid)
        {
            try
            {
                 var id = Membership.GetUser().ProviderUserKey.ToString();
                 var result = MembershipUser. userManager.ChangePassword(id, model.OldPassword, model.NewPassword);
            }
            catch (Exception exc)
            {
                return View(model);
            }
        }
        return View(model);
    }
}

1 个答案:

答案 0 :(得分:0)

如果您使用的是Microsoft.Aspnet.Identity版本2,那么有一些更好的方法可以重置密码

string resetToken = await UserManager.GeneratePasswordResetTokenAsync(model.Id);

IdentityResult passwordChangeResult = await UserManager.ResetPasswordAsync(model.Id, resetToken, model.NewPassword);

如果您使用的是版本1,则可以尝试使用&#34; RemovePassword&#34;和&#34; AddPassword&#34; &#34; userManager&#34;的方法实例