public async Task <ResponseBase> ResetPassword([FromBody] RequestResetPasswordRequest request)
        {
            var userByMail = await UserManager.FindByEmailAsync(request.Email)
                             ?? throw ResponseStatusCode.UserNotFound.ToApiException();

            var token = await UserManager.GeneratePasswordResetTokenAsync(userByMail);

            await emailSender.SendResetPasswordEmail(request.Email, request.RedirectUrl, token);

            return(ResponseBase.OK);
        }
Exemple #2
0
        public async Task <bool> SendResetPasswordEmail(RequestResetPasswordRequest data)
        {
            var user = await _userRepo.GetByEmailAsync(data.Email);

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

            var token = await _userRepo.GeneratePasswordResetTokenAsync(user.Id);

            return(true);
        }
        public async Task <IActionResult> RequestPasswordReset([FromBody] RequestResetPasswordRequest data)
        {
            var user = await _userService.FindByEmail(data);

            if (user == null)
            {
                return(Ok(true));
            }

            await _userService.SendResetPasswordEmail(data);

            return(Ok(true));
        }
        public ActionResult PasswordReset(PasswordReset model)
        {
            if (ModelState.IsValid)
            {
                string connection     = ConfigurationManager.AppSettings["InternalAPIURL"];
                var    appAccessToken = WebUtils.GetVaultSecret("AppConnectionKey");

                RequestResetPasswordRequest  resetRequest  = new RequestResetPasswordRequest(connection, appAccessToken, model.Email);
                RequestResetPasswordResponse resetResponse = resetRequest.Send();

                //always act like success - don't want people fishing for email addresses
                TempData["Success"] = "An email was sent to the email address provided. Please follow the instructions to reset your password.";
                return(RedirectToAction("Login", "Account"));
            }
            else
            {
                return(View(model));
            }
        }
Exemple #5
0
            public void ForgotPasswordRequest()
            {
                RequestResetPasswordRequest request = new RequestResetPasswordRequest(connection, testToken, "*****@*****.**");

                KeyVaultClient KeyVault;

                try
                {
                    var azureServiceTokenProvider = new AzureServiceTokenProvider();
                    var _token = azureServiceTokenProvider.GetAccessTokenAsync("https://vault.azure.net").Result;
                    KeyVault = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
                }
                catch (Exception e)
                {
                    throw e;
                }
                var bundle = KeyVault.GetSecretAsync("https://pr-kv-uks-dev.vault.azure.net/secrets/AppConnectionKey").Result;

                request.AppAccessToken = bundle.Value;

                RequestResetPasswordResponse response = request.Send();

                Assert.AreEqual(response.StatusCode, System.Net.HttpStatusCode.OK);
            }
Exemple #6
0
 public async Task <UserResponse> FindByEmail(RequestResetPasswordRequest data)
 {
     return(_mapper.Map <UserResponse>(await _userRepo.GetByEmailAsync(data.Email)));
 }
 public async Task <User> FindByEmail(RequestResetPasswordRequest data)
 {
     return(await _userRepo.GetByEmailAsync(data.Email));
 }