Exemplo n.º 1
0
        public async Task <ActionResult> UpdatePasswordUser(string oldP, string newP, string newPCom)
        {
            long idUser = long.Parse(User.Identity.GetUserId());

            if (oldP != null && newP != null && newPCom != null && newP == newPCom)
            {
                var result = await UserManager.ChangePasswordAsync(long.Parse(User.Identity.GetUserId()), oldP, newP);

                return(Json(result.Succeeded, JsonRequestBehavior.AllowGet));
            }
            else
            {
                return(Json(false, JsonRequestBehavior.AllowGet));
            }
        }
Exemplo n.º 2
0
        public async Task <IHttpActionResult> ChangePassword([FromBody] ChangePasswordBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            IdentityResult result = await _userManager.ChangePasswordAsync(User.Identity.GetUserId(), model.OldPassword,
                                                                           model.NewPassword);

            if (!result.Succeeded)
            {
                return(GetErrorResult(result));
            }

            return(Ok());
        }
Exemplo n.º 3
0
        public async Task <ActionResult> ChangePassword(ChangePasswordViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            var result = await UserManager.ChangePasswordAsync(User.Identity.GetUserId(), model.OldPassword, model.NewPassword);

            if (result.Succeeded)
            {
                var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

                if (user != null)
                {
                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);
                }
                return(RedirectToAction("Index", new { Message = ManageMessageId.ChangePasswordSuccess }));
            }
            AddErrors(result);
            return(View(model));
        }
Exemplo n.º 4
0
        public ResponseResult ChangePass(HSKR.Identity.ChangePasswordBindingModel model)
        {
            try
            {
                if (!model.NewPassword.Trim().Equals(model.ConfirmPassword.Trim()))
                {
                    var data = new Response <UserViewModel>
                    {
                        Message = HttpMessage.CHANGE_PASS_OLD_PASS,
                        Data    = null,
                        Status  = false
                    };
                    ActionContext.Response.StatusCode = HttpStatusCode.Redirect;
                    return(new ResponseResult(data, ActionContext));
                }
                var user = userManager.Find(model.UserName, model.OldPassword);
                if (user == null)
                {
                    var data = new Response <UserViewModel>
                    {
                        Message = HttpMessage.CHANGE_PASS_WRONG_ACC,
                        Data    = null,
                        Status  = false
                    };
                    ActionContext.Response.StatusCode = HttpStatusCode.Redirect;
                    return(new ResponseResult(data, ActionContext));
                }

                var result           = JObject.Parse(user.ToJson());
                var userId           = result["id"];
                var changePassResult = userManager.ChangePasswordAsync(long.Parse(userId.ToString()), model.OldPassword, model.NewPassword.Trim());
                if (!changePassResult.Result.Succeeded)
                {
                    var repon = new Response <UserViewModel>
                    {
                        Message = changePassResult.Result.Errors.ToJson(),
                        Status  = false,
                    };
                    ActionContext.Response.StatusCode = HttpStatusCode.InternalServerError;
                    return(new ResponseResult(repon, ActionContext));
                }

                var userResponse = new Response <UserViewModel>
                {
                    Message = "Change password success",
                    Status  = true,
                };

                return(new ResponseResult(userResponse, ActionContext));
            }
            catch (Exception exception)
            {
                logger.Error(exception);
                ActionContext.Response.StatusCode = HttpStatusCode.InternalServerError;
                var data = new Response <UserViewModel>
                {
                    Message = HttpMessage.ERROR_CHANGE_PASS,
                    Status  = false
                };
                return(new ResponseResult(data, ActionContext));
            }
        }
Exemplo n.º 5
0
        public async Task <ActionResult> ChangePassword(ChangePasswordInputModel model)
        {
            if (ModelState.IsValid)
            {
#if DEBUG
                Debug.WriteLine("Model is valid");
#endif
                var user = await _userManager.FindByNameAsync(model.UserName);

                if (user != null)
                {
#if DEBUG
                    Debug.WriteLine("user is not null");
#endif
                    if (!(await _userManager.IsUsedPasswordAsync(user.UserID, model.Password)))
                    {
#if DEBUG
                        Debug.WriteLine("Password is NOT used.");
#endif

                        var result2 =
                            await _userManager.ChangePasswordAsync(user.UserID, model.OldPassword, model.Password);

                        if (result2.Succeeded)
                        {
#if DEBUG
                            Debug.WriteLine("Password is changed to succeeded");
#endif
                            var resultSetUsedPassword =
                                await
                                _userManager.SetUsedPasswordAsync(user.UserID, model.Password).ConfigureAwait(true);

#if DEBUG
                            Debug.WriteLine("Used password is saved!");
#endif

                            var result3 = await _userManager.SetSigninEndDateAsync(user); //.ConfigureAwait(false);

#if DEBUG
                            if (result3)
                            {
                                Debug.WriteLine("SetSigninEndDateAsync is  well done");
                            }
#endif
                            var result4 = await _userManager.ResetAccessFailedCountAsync(user.UserID);

#if DEBUG
                            if (result4.Succeeded)
                            {
                                Debug.WriteLine("ResetAccessFailedCountAsync is executed.");
                            }
#endif
                            result4 = await _userManager.SetChangePasswordEndDateAsync(user);

#if DEBUG
                            if (result4.Succeeded)
                            {
                                Debug.WriteLine("SetChangePasswordEndDateAsync is executed.");
                            }
#endif

                            result4 = await _userManager.SetPasswordEnabledAsync(user, false);

#if DEBUG
                            if (result4.Succeeded)
                            {
                                Debug.WriteLine("SetPasswordEnabledAsync is executed.");
                            }
#endif

                            return(RedirectToAction("ResetPasswordConfirmation"));
                        }
                        else
                        {
                            // Активизирована ли функция  блокировки учётки в системе
                            if (_userManager.LockoutEnabled)
                            {
#if DEBUG
                                Debug.WriteLine("++++ GetLockoutEnabledAsync is enabled");
#endif
                                // Увелечение счётчика неудачных попыток ввода пароля
                                if (await _userManager.AccessFailedAsync(user.UserID) == IdentityResult.Success)
                                {
#if DEBUG
                                    Debug.WriteLine("~~~ AccessFailedAsync is working!");
#endif
                                    if (await _userManager.IsLockedOutAsync(user.UserID))
                                    {
#if DEBUG
                                        Debug.WriteLine("Account is locked out!");
#endif
                                        //Заблокировать учётку
                                        return(View("Lockout"));
                                    }
                                }
                            }
                            ModelState.AddModelError("", "Ввод старого пароля не верен!");
                        }
                    }
                    else
                    {
#if DEBUG
                        Debug.WriteLine("Password is used!");
#endif
                        ModelState.AddModelError("", "Пароль уже использовался");
                        return(View());
                    }
                }
            }

#if DEBUG
            Debug.WriteLine("Error is occured in ChangePassword");
#endif
            return(View(model));
        }