Ejemplo n.º 1
0
 /// <summary>
 /// Resets the password error code to string.
 /// </summary>
 /// <param name="resetPasswordStatus">The reset password status.</param>
 /// <returns>String representation of error code.</returns>
 public static string ResetPasswordErrorCodeToString(ResetUserPasswordStatus resetPasswordStatus)
 {
     switch (resetPasswordStatus)
     {
         case ResetUserPasswordStatus.EmailNotExist:
             return "Invalid email address. Please enter a different e-mail address.";
         case ResetUserPasswordStatus.UserNotVerified:
             return "User was not yet verified, please check your mailbox or please contact administrator.";
         case ResetUserPasswordStatus.WaitOneHour:
             return "Double reset request, you should wait at least one hour for next password reset request.";
         default:
             return "An unknown error occurred. Please verify your entry and try again. If the problem persists, please contact your system administrator.";
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Resets the password error code to string.
        /// </summary>
        /// <param name="resetPasswordStatus">The reset password status.</param>
        /// <returns>String representation of error code.</returns>
        public static string ResetPasswordErrorCodeToString(ResetUserPasswordStatus resetPasswordStatus)
        {
            switch (resetPasswordStatus)
            {
            case ResetUserPasswordStatus.EmailNotExist:
                return("Invalid email address. Please enter a different e-mail address.");

            case ResetUserPasswordStatus.UserNotVerified:
                return("User was not yet verified, please check your mailbox or please contact administrator.");

            case ResetUserPasswordStatus.WaitOneHour:
                return("Double reset request, you should wait at least one hour for next password reset request.");

            default:
                return("An unknown error occurred. Please verify your entry and try again. If the problem persists, please contact your system administrator.");
            }
        }
Ejemplo n.º 3
0
        public ActionResult ResetPassword(ResetPasswordModel model)
        {
            if (ModelState.IsValid)
            {
                // Attempt to reset password
                ResetUserPasswordStatus resetStatus = UserAuthenticationService.GetResetPasswordToken(model.Email);

                if (resetStatus == ResetUserPasswordStatus.Success)
                {
                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    ModelState.AddModelError(string.Empty, AccountValidation.ResetPasswordErrorCodeToString(resetStatus));
                }
            }
            return(View(model));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Gets the reset password token.
        /// </summary>
        /// <param name="email">The email.</param>
        /// <returns>Reset user password status.</returns>
        public ResetUserPasswordStatus GetResetPasswordToken(string email)
        {
            if (String.IsNullOrEmpty(email))
            {
                throw new ArgumentException("Email cannot be null or empty.", "email");
            }

            string token;
            ResetUserPasswordStatus status = _userAuthentication.GetResetPasswordToken(email, out token);

            if (status == ResetUserPasswordStatus.Success)
            {
                var resetPasswordMessage = _appInfoService.GetResetPasswordMailTemplate();
                _emailService.Send(email,
                                   resetPasswordMessage.SubjectTemplate,
                                   string.Format(
                                       resetPasswordMessage.TextTemplate,
                                       _appInfoService.RootUrl + "/Account/ConfirmResetPassword/" + token
                                       ),
                                   resetPasswordMessage.IsHtml);
            }
            return(status);
        }