Exemplo n.º 1
0
        public async Task <IActionResult> SetNew(SetNewPasswordViewModel viewModel)
        {
            if (!HasAccess(SetNewPasswordAccessKey))
            {
                return(RedirectToAction("Initiate"));
            }
            if (!ModelState.IsValid)
            {
                return(RedirectToAction("SetNew"));
            }

            var ipAddress = Request.HttpContext?.Connection?.RemoteIpAddress?.ToString();
            var userAgent = Request.Headers["User-Agent"];

            return(await _userService.CompletePasswordResetAsync(viewModel.Email,
                                                                 viewModel.Token, viewModel.Password, ipAddress, userAgent)
                   .Execute(
                       onSuccess: () =>
            {
                SetAccess(ResetPasswordAccessKey);

                return RedirectToAction("Complete");
            },
                       onFailure: ex =>
            {
                Notify(FlashNotificationType.Error, ex.Message);

                return RedirectToAction("SetNew", new { email = viewModel.Email, token = viewModel.Token });
            }));
        }
Exemplo n.º 2
0
        public ActionResult SetNewPassword(SetNewPasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                if (model.NewPassword != model.NewPasswordConfirm)
                {
                    ModelState.AddModelError("", string.Format(Resources.Messages.E048));
                }
                else
                {
                    using (TransactionScope transaction = new TransactionScope())
                    {
                        if (_service.UpdatePassword(model.UserId, SafePassword.GetSaltedPassword(model.NewPassword), model.PasswordLockTarget, model.CompanyCode) > 0)
                        {
                            if (_service.DeletePasswordResetInfo(model.Email, model.CompanyCode) > 0)
                            {
                                transaction.Complete();
                                FormsAuthentication.SignOut();
                                Session.Clear();
                                ViewBag.MessageSuccess = String.Format(Resources.Messages.I017);
                            }
                        }
                    }
                }
            }

            return(View("SetNewPassword", model));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> NewUserSetPassword(SetNewPasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = await _userManager.GetUserAsync(model.UserId);

                if (user == null)
                {
                    // Don't reveal that the user does not exist
                    return(RedirectToAction(nameof(AccountController.NewUserSetPassword)));
                }

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

                if (!result.Succeeded)
                {
                    AddErrors(result);
                    return(View(model));
                }

                //ViewData["ReturnUrl"] = model.ReturnUrl;

                return(RedirectToAction(nameof(AccountController.ResetPasswordDone), new { returnUrl = model.ReturnUrl }));
            }
            return(View(model));
        }
Exemplo n.º 4
0
        /// <summary>
        /// Function Create a object SetNewPasswordViewModel
        /// </summary>
        /// <param name="userId">userId</param>
        /// <param name="password_lock_target">password_lock_target</param>
        /// <param name="email">email</param>
        /// <returns>Set Password View</returns>
        private SetNewPasswordViewModel MakeSetNewPasswordViewModel(int userId, string password_lock_target, string email)
        {
            var model = new SetNewPasswordViewModel();

            model.UserId             = userId;
            model.PasswordLockTarget = password_lock_target;
            model.Email = email;

            return(model);
        }
        public ActionResult SetNew(int u, Guid t)
        {
            var viewModel = new SetNewPasswordViewModel()
            {
                UserId                    = u,
                PasswordResetToken        = t,
                IsPasswordResetTokenValid = UserRegistrationService.IsPasswordResetTokenValid(u, t)
            };

            return(View(viewModel));
        }
Exemplo n.º 6
0
        public ActionResult SetNewPassword(string infor)
        {
            FormsAuthentication.SignOut();
            Session.Clear();

            var  model = new SetNewPasswordViewModel();
            bool flag  = true;

            try
            {
                var passwordReset = _service.GetPasswordResetInfo(infor);
                if (passwordReset != null)
                {
                    var user = _service.CheckEmail(passwordReset.mail_address, passwordReset.company_code);
                    if (user != null)
                    {
                        if (Utility.GetCurrentDateTime() < passwordReset.apply_time.AddHours(_service.GetReissueMailEffectiveTime(user.company_code)))
                        {
                            model.UserId             = user.user_sys_id;
                            model.Email              = passwordReset.mail_address;
                            model.PasswordLockTarget = user.password_lock_target;
                            model.CompanyCode        = user.company_code;
                        }
                        else
                        {
                            flag = false;
                        }
                    }
                    else
                    {
                        flag = false;
                    }
                }
                else
                {
                    flag = false;
                }
            }
            catch
            {
                flag = false;
            }

            if (!flag)
            {
                return(View("ErrorResetPassword"));
            }

            return(View(model));
        }
Exemplo n.º 7
0
        public async Task <IActionResult> SetNew(string email, string token)
        {
            return(await _userService.ValidatePasswordResetTokenAsync(email, token)
                   .Execute(
                       onSuccess: () =>
            {
                SetAccess(SetNewPasswordAccessKey);
                var viewModel = new SetNewPasswordViewModel
                {
                    Email = email,
                    Token = token
                };

                return View(viewModel);
            },
                       onFailure: ex =>
            {
                Notify(FlashNotificationType.Error, ex.Message);

                return RedirectToAction("Initiate");
            }));
        }
 public ActionResult SetNew(SetNewPasswordViewModel viewModel)
 {
     UserRegistrationService.ResetPassword(viewModel.UserId, viewModel.PasswordResetToken, viewModel.Password);
     return(RedirectToAction("passwordchanged"));
 }
Exemplo n.º 9
0
        public async Task <IActionResult> NewUserSetPassword(string userId, string code, string ru)
        {
            if (userId == null || code == null)
            {
                return(View("Error"));
            }

            var user = await _userManager.FindByIdAsync(userId);

            if (user == null)
            {
                return(View("Error"));
            }

            var result = await _userManager.VerifyUserTokenAsync(user, nameof(ConnectCustomTokenProvider <User>), "NewUserPassword", code);

            if (!result)
            {
                return(View("Error", new ErrorViewModel()
                {
                    Error = new IdentityServer4.Models.ErrorMessage
                    {
                        ErrorDescription = "Invalid Token."
                    }
                }));
            }


            //Since user is trying to get to this password reset page, meaning email is verified as well.
            var emailVerificationToken = await _userManager.GenerateEmailConfirmationTokenAsync(user);

            var emailConfirmResult = await _userManager.ConfirmEmailAsync(user, emailVerificationToken);

            if (!emailConfirmResult.Succeeded)
            {
                AddErrors(emailConfirmResult);
                return(View("Error", new ErrorViewModel()
                {
                    Error = new IdentityServer4.Models.ErrorMessage
                    {
                        ErrorDescription = emailConfirmResult.Errors.FirstOrDefault()?.Description
                    }
                }));
            }

            //if all checks out for this user....
            //Generate token for updating the password.


            var passwordResetToken = await _userManager.GeneratePasswordResetTokenAsync(user);

            SetNewPasswordViewModel model = new SetNewPasswordViewModel
            {
                UserId    = user.Id,
                Token     = passwordResetToken,
                UserName  = user.DisplayName,
                ReturnUrl = ru
            };

            return(View(model));
        }