コード例 #1
0
        public async Task <IActionResult> ResetPassword(ResetPasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = await _userManager.FindByEmailAsync(model.Email);

                if (user == null)
                {
                    return(RedirectToAction("ResetPasswordConfirmation"));
                }

                var result = await _resetPasswordService.ResetPassword(model);

                if (result.Succeeded)
                {
                    return(RedirectToAction("ResetPasswordConfirmation"));
                }

                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }
            return(View(model));
        }
コード例 #2
0
        public async Task <IActionResult> ConfirmResetPassword([FromQuery] ResetPasswordCallbackViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(this.ErrorPage());
            }

            return(await resetPasswordService.ResetPassword(viewModel.Email, viewModel.NewPassword, viewModel.Token)
                ? (IActionResult)RedirectToAction("Login").PushAlert("Password has been changed")
                : this.ErrorPage());
        }
コード例 #3
0
 public RedirectResult PasswordReset(ResetPasswordViewModel model)
 {
     try
     {
         _resetPasswordService.ResetPassword(model);
         return(_uniquePageService.RedirectTo <LoginPage>());
     }
     catch (Exception ex)
     {
         ErrorSignal.FromCurrentContext().Raise(ex);
         return(_uniquePageService.RedirectTo <LoginPage>());
     }
 }
コード例 #4
0
        public async Task <IActionResult> ResetPassword([FromBody] PasswordModel options)
        {
            try
            {
                await _resetPasswordService.ResetPassword(options.ResetToken, options.Password);

                return(Ok());
            }
            catch (KeyNotFoundException)
            {
                return(BadRequest(new ValidationProblemDetails(new Dictionary <string, string[]>(new List <KeyValuePair <string, string[]> > {
                    new KeyValuePair <string, string[]>("ResetToken", new string[] { "Token is not valid" })
                }))));
            }
        }
コード例 #5
0
        public async Task <ActionResult <ItemResponse <int> > > ResetPassword(ResetPassword model)
        {
            int          iCode        = 200;
            BaseResponse response     = null;
            int          userId       = 0;
            bool         isSuccessful = false;


            try
            {
                userId       = _authService.GetCurrentUserId();
                isSuccessful = _service.ResetPassword(model, userId);
                if (isSuccessful == true)
                {
                    try
                    {
                        await _authService.LogOutAsync();
                    }
                    catch (Exception ex)
                    {
                        iCode = 500;
                        base.Logger.LogError(ex.ToString());
                        response = new ErrorResponse($"Logout Error: {ex.Message}");
                    }
                    response = new SuccessResponse();
                }
                else
                {
                    iCode    = 404;
                    response = new ErrorResponse("Resource Not Found");
                }
            }
            catch (Exception ex1)
            {
                iCode = 500;
                base.Logger.LogError(ex1.ToString());
                response = new ErrorResponse($"Server Error: {ex1.Message}");
            }

            return(StatusCode(iCode, response));
        }
コード例 #6
0
        public async Task <IActionResult> ResetPassword([FromBody] ResetPasswordDto resetPasswordDto, [FromServices] IResetPasswordService service)
        {
            var resetPasswordValidator = new ResetPasswordValidator();
            var validatorResult        = await resetPasswordValidator.ValidateAsync(resetPasswordDto);

            if (validatorResult.IsValid)
            {
                await service.ResetPassword(resetPasswordDto);

                if (!service.Status.HasErrors)
                {
                    return(Ok());
                }
                return(BadRequest(service.Status.Errors));
            }

            var validationErrors = validatorResult.Errors.Select(error => new ValidationResult(error.ErrorMessage))
                                   .ToImmutableList();

            return(BadRequest(validationErrors));
        }