标签:
1、先使用UserManager.RemovePassword(UserID),清空密码,再使用UserMnager.AddPassword(UserId,newPassword)增加新密码。
 [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult ChangePassword(ChangePasswordViewModel userViewModel)
        {
            var userId = User.Identity.GetUserId();
            var _user = UserManager.FindById(userId);
            if (ModelState.IsValid)
            {
                if (UserManager.CheckPassword(_user, userViewModel.OldPassword))      //UserManager.CheckPasswrod检查 密码是否正确。
                {
                    UserManager.RemovePassword(userId);      //清空旧密码。
                    UserManager.AddPassword(userId, userViewModel.NewPassword);      //加入新密码.
                    return RedirectToAction("Index");
                }
                else
                {
                    ModelState.AddModelError("", "输入的旧密码不正确");
                    return View(userViewModel);
                }
            }
            else
            {
                ModelState.AddModelError("", "绑定失败");
                return View(userViewModel);
            }
        }
2、利用UserManager.GerneratePasswordResetTokeno为用户创建一个重置密码的GUID值,然后调用 ResetPassword(UserId,GUID,newPassword)值重新创建密码;
 [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult ChangeUserPassword(ResetPasswordViewModel _resetPasswordViewModel)
        {
            if (!ModelState.IsValid)
            {
                return View(_resetPasswordViewModel);
            }
            var _user = UserManager.FindByName(_resetPasswordViewModel.UserName);
            if (_user == null)
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            var code =UserManager.GeneratePasswordResetToken(_user.Id);       //为用户创建一个重置密码的GUID值
            var result =UserManager.ResetPassword(_user.Id,code,_resetPasswordViewModel.Password);       //重新创建密码;
            if (result.Succeeded)  
            {
                return RedirectToAction("Index");
 
            }
            return View();
           
        }
标签:
原文地址:http://www.cnblogs.com/liuyuanhao/p/4455813.html