示例#1
0
        public async Task <IActionResult> NecessarilyChangePassword(NecessarilyChangePasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = await _userManager.FindByIdAsync(Convert.ToString(model.Id));

                if (user != null)
                {
                    var resultAuth = await _signInManager.PasswordSignInAsync(
                        userName : user.Email, model.OldPassword,
                        false,
                        lockoutOnFailure : true);

                    if (resultAuth.Succeeded)
                    {
                        await _signInManager.SignOutAsync();

                        var result = await _userManager.ChangePasswordAsync(
                            user,
                            model.OldPassword,
                            model.NewPassword);

                        if (result.Succeeded)
                        {
                            user.IsPasswordChange = false;
                            var resultUpdate = await _userManager.UpdateAsync(user);

                            if (resultUpdate.Succeeded)
                            {
                                return(RedirectToAction("Login", "Login"));
                            }
                            else
                            {
                                ModelState.AddModelError(string.Empty, "Неверный");
                            }
                        }
                        else
                        {
                            ModelState.AddModelError("OldPassword", "Неверный пароль");
                        }
                    }
                    else
                    {
                        ModelState.AddModelError("OldPassword", "Неверный пароль!");
                    }

                    if (resultAuth.IsLockedOut)
                    {
                        ModelState.AddModelError(string.Empty, "Твой аккаунт заблокирован на 10 минут");
                    }
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "Пользователь не найден");
                }
            }

            return(View(model));
        }
示例#2
0
        public async Task <IActionResult> NecessarilyChangePassword(int id)
        {
            var user = await _userManager.FindByIdAsync(Convert.ToString(id));

            if (user == null)
            {
                return(NotFound());
            }

            var model = new NecessarilyChangePasswordViewModel {
                Id = user.Id
            };

            return(View(model));
        }