示例#1
0
        public ActionResult ChangePassword(API.Common.Model.PasswordChangeModel model)
        {
            if (ModelState.IsValid)
            {
                var passwordChanged = new UserManager().SetNewPassword((int)UserID, model);

                model.PasswordResetFailed = !passwordChanged;

                if (passwordChanged)
                {
                    model.PasswordResetCompleted = true;
                    return(RedirectToAction("Index", "Profile"));
                }
            }

            return(View(model));
        }
示例#2
0
        public bool SetNewPassword(int userId, API.Common.Model.PasswordChangeModel model)
        {
            var userDetails = dataModel.Users.FirstOrDefault(u => u.Id == userId);

            if (userDetails != null)
            {
                if (model.IsCurrentPasswordRequired && !IsCorrectPassword(userDetails.PasswordHash, model.CurrentPassword))
                {
                    //current password is required, incorrect password supplied or none given
                    return(false);
                }

                //proceed to update password
                userDetails.PasswordHash = GetNewPasswordHash(model.Password);
                dataModel.SaveChanges();
                return(true);
            }
            return(false);
        }