예제 #1
0
        public async Task <ServiceModels.ServiceResponse> ResetPassword(InputModels.ResetPasswordInput input)
        {
            var serviceResponse = new ServiceModels.ServiceResponse();

            var account = await UserManager.FindByEmailAsync(input.Email);

            if (account != null)
            {
                var identityResult = await UserManager.ResetPasswordAsync(account, input.Code, input.Password);

                if (!identityResult.Succeeded)
                {
                    foreach (var error in identityResult.Errors)
                    {
                        Log.LogError($"Error resetting password for '{account.Email}'. Message: {error.Description}");
                    }
                }
                else
                {
                    Log.LogInformation($"Password was reset for '{account.Email}'.");
                }
            }

            serviceResponse.RedirectPath = nameof(Account.ResetPasswordConfirmation);
            return(serviceResponse);
        }
예제 #2
0
파일: Account.cs 프로젝트: iomeone/forum-1
        public async Task <IActionResult> ResetPassword(InputModels.ResetPasswordInput input)
        {
            if (ModelState.IsValid)
            {
                var serviceResponse = await AccountRepository.ResetPassword(input);

                return(await this.RedirectFromService(serviceResponse, FailureCallback));
            }

            return(await FailureCallback());

            async Task <IActionResult> FailureCallback()
            {
                await AccountRepository.SignOut();

                var viewModel = new ViewModels.Account.ResetPasswordPage {
                    Code = input.Code
                };

                return(View(viewModel));
            }
        }