Esempio n. 1
0
        public async Task <ActionResult> ChangePasswordAsync(ChangePasswordViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View("ChangePassword", model));
            }

            var changePasswordOptions = new ChangePasswordOptions()
            {
                OldPassword = model.OldPassword,
                NewPassword = model.NewPassword,
                StateToken  = Session["stateToken"]?.ToString(),
            };

            try
            {
                var authnResponse = await _oktaAuthenticationClient.ChangePasswordAsync(changePasswordOptions).ConfigureAwait(false);

                if (authnResponse.AuthenticationStatus == AuthenticationStatus.Success)
                {
                    return(RedirectToAction("Login", "Account"));
                }

                ModelState.AddModelError("Oops! Something went wrong:", authnResponse.AuthenticationStatus);
                return(View("ChangePassword", model));
            }
            catch (OktaApiException exception)
            {
                ModelState.AddModelError(string.Empty, exception.ErrorSummary);
                return(View("ChangePassword", model));
            }
        }