Example #1
0
        protected void ChangePasswordButton_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                //VERIFY THE GIVEN USERNAME IS VALID
                User user = UserDataSource.LoadForUserName(UserName.Text);
                if ((user != null) && !string.IsNullOrEmpty(UserName.Text) && !string.IsNullOrEmpty(_LastPasswordValue))
                {
                    //VERIFY CURRENT PASSWORD IS CORRECT
                    if (Membership.ValidateUser(UserName.Text, _LastPasswordValue))
                    {
                        //VERIFY THE NEW PASSWORD MEETS POLICY
                        MerchantPasswordPolicy policy = new MerchantPasswordPolicy();
                        PasswordTestResult     result = policy.TestPasswordWithFeedback(user, NewPassword.Text);
                        if ((result & PasswordTestResult.Success) == PasswordTestResult.Success && !NewPassword.Text.Equals(_LastPasswordValue))
                        {
                            // PASSWORD CHANGE SUCCEEDED, REDIRECT TO THE MERCHANT ADMIN
                            user.SetPassword(NewPassword.Text);
                            FormsAuthentication.SetAuthCookie(UserName.Text, false);
                            Response.Redirect("~/Admin/Default.aspx");
                        }
                        else
                        {
                            //REDISPLAY THE PASSWORD REQUIREMENST
                            ShowPasswordExpired();

                            //"Your new password did not meet the following minimum requirements:<br/>";
                            if ((result & PasswordTestResult.PasswordTooShort) == PasswordTestResult.PasswordTooShort)
                            {
                                AddPasswordExpiredValidator(string.Format(PasswordPolicyLength.Text, policy.MinLength));
                            }
                            if ((result & PasswordTestResult.RequireLower) == PasswordTestResult.RequireLower)
                            {
                                AddPasswordExpiredValidator("New password must contain at least one lowercase letter.<br/>");
                            }
                            if ((result & PasswordTestResult.RequireUpper) == PasswordTestResult.RequireUpper)
                            {
                                AddPasswordExpiredValidator("New password must contain at least one uppercase letter.<br/> ");
                            }
                            if ((result & PasswordTestResult.RequireNonAlpha) == PasswordTestResult.RequireNonAlpha)
                            {
                                AddPasswordExpiredValidator("New password must contain at least one non-letter.<br/> ");
                            }
                            if ((result & PasswordTestResult.RequireNumber) == PasswordTestResult.RequireNumber)
                            {
                                AddPasswordExpiredValidator("New password must contain at least one number.<br/> ");
                            }
                            if ((result & PasswordTestResult.RequireSymbol) == PasswordTestResult.RequireSymbol)
                            {
                                AddPasswordExpiredValidator("New password must contain at least one symbol.<br/> ");
                            }

                            if ((result & PasswordTestResult.PasswordHistoryLimitation) == PasswordTestResult.PasswordHistoryLimitation)
                            {
                                AddPasswordExpiredValidator("You have recently used this password.<br/>");
                            }
                            if (NewPassword.Text.Equals(_LastPasswordValue))
                            {
                                AddPasswordExpiredValidator("You new password must be different from your current password.<br/>");
                            }
                        }
                    }
                }
            }
        }
Example #2
0
        protected void ChangePasswordButton_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                //VERIFY CURRENT PASSWORD IS CORRECT
                User u = AbleContext.Current.User;
                if (u.CheckPassword(CurrentPassword.Text))
                {
                    //VERIFY THE NEW PASSWORD MEETS POLICY
                    PasswordPolicy     policy = new MerchantPasswordPolicy();
                    PasswordTestResult result = policy.TestPasswordWithFeedback(u, NewPassword.Text);
                    if ((result & PasswordTestResult.Success) == PasswordTestResult.Success)
                    {
                        u.SetPassword(NewPassword.Text);
                        ShowChangePassword.Visible     = false;
                        ChangePasswordPanel.Visible    = false;
                        PasswordChangedMessage.Visible = true;
                    }
                    else
                    {
                        if (CurrentPassword.Text.Equals(NewPassword.Text))
                        {
                            AddPasswordValidator("Your new password is the same as your current password.");
                        }
                        else
                        {
                            //"Your new password did not meet the following minimum requirements:<br/>";
                            if ((result & PasswordTestResult.PasswordTooShort) == PasswordTestResult.PasswordTooShort)
                            {
                                AddPasswordValidator(string.Format(PasswordPolicyLength.Text, policy.MinLength));
                            }
                            if ((result & PasswordTestResult.RequireLower) == PasswordTestResult.RequireLower)
                            {
                                AddPasswordValidator("New password must contain at least one lowercase letter.<br/>");
                            }
                            if ((result & PasswordTestResult.RequireUpper) == PasswordTestResult.RequireUpper)
                            {
                                AddPasswordValidator("New password must contain at least one uppercase letter.<br/> ");
                            }
                            if ((result & PasswordTestResult.RequireNonAlpha) == PasswordTestResult.RequireNonAlpha)
                            {
                                AddPasswordValidator("New password must contain at least one non-letter.<br/> ");
                            }
                            if ((result & PasswordTestResult.RequireNumber) == PasswordTestResult.RequireNumber)
                            {
                                AddPasswordValidator("New password must contain at least one number.<br/> ");
                            }
                            if ((result & PasswordTestResult.RequireSymbol) == PasswordTestResult.RequireSymbol)
                            {
                                AddPasswordValidator("New password must contain at least one symbol.<br/> ");
                            }

                            if ((result & PasswordTestResult.PasswordHistoryLimitation) == PasswordTestResult.PasswordHistoryLimitation)
                            {
                                AddPasswordValidator("You have recently used this password.<br/>");
                            }
                        }
                        ChangePasswordPanel.Visible = true;
                        ShowChangePassword.Visible  = false;
                    }
                }
                else
                {
                    CustomValidator validator = new CustomValidator();
                    validator.ErrorMessage    = "You did not type your current password correctly.";
                    validator.Text            = "*";
                    validator.IsValid         = false;
                    validator.ValidationGroup = "UserStatus";
                    phCustomValidator.Controls.Add(validator);

                    ChangePasswordPanel.Visible = true;
                    ShowChangePassword.Visible  = false;
                }
            }
        }