示例#1
0
        public async Task <IActionResult> ResetPassword(ResetPasswordViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var user = await _userManager.FindByEmailAsync(model.Email);

            if (user == null)
            {
                return(View(model));
            }

            var result = await _userManager.ResetPasswordAsync(user, model.Token, model.Password);

            if (result.Succeeded)
            {
                // Confirm email, if not confirmed yet
                if (!(await _userManager.IsEmailConfirmedAsync(user)))
                {
                    _ = _userManagerService.ConfirmEmailAsync(user);
                }
                return(View("PasswordChangeConfirmed"));
            }

            ModelState.AddModelError("", "Nie udało się zmienić hasła.");
            result.Errors
            .Select(identityError => identityError.Description)
            .ToList()
            .ForEach(errorMessage => ModelState.AddModelError("", errorMessage));
            return(View(model));
        }
示例#2
0
        public async Task <IActionResult> ConfirmEmail(string userId, string code)
        {
            var user = await _userManagerService.GetUserById(userId);

            if (userId == null || code == null)
            {
                return(View("Error"));
            }
            if (user == null)
            {
                return(View("Error"));
            }
            var result = await _userManagerService.ConfirmEmailAsync(user, code);

            if (result.Succeeded)
            {
                return(RedirectToAction("Index", "Home"));
            }
            else
            {
                return(View("Error"));
            }
        }