public bool IsValidPasswordForm(ModelState modelState, ChangePasswordFormViewModel passwordForm, string oldPassword = null) { var prefix = nameof(passwordForm); var passwordField = $"{prefix}.{nameof(passwordForm.Password)}"; var validationRules = new List <ValidationRuleItem <ChangePasswordFormViewModel> >() { new ValidationRuleItem <ChangePasswordFormViewModel> { Field = passwordField, Rule = model => !string.IsNullOrEmpty(model.Password), ErrorMessage = "validation.required".AsWebSiteString() }, new ValidationRuleItem <ChangePasswordFormViewModel> { Field = passwordField, Rule = model => oldPassword == null || !model.Password.Equals(oldPassword), ErrorMessage = "changepassword.newpasswordequalstheoldpassword".AsWebSiteString() }, new ValidationRuleItem <ChangePasswordFormViewModel> { Field = passwordField, Rule = model => _userValidationService.IsValidPassword(model.Password), ErrorMessage = "changepassword.invalidpasswordformat".AsWebSiteString() }, new ValidationRuleItem <ChangePasswordFormViewModel> { Field = passwordField, Rule = model => _userValidationService.IsPasswordMatch(model.Password, model.ConfirmPassword), ErrorMessage = "changepassword.passwordconfirmationdoesnotmatch".AsWebSiteString() }, new ValidationRuleItem <ChangePasswordFormViewModel> { Field = passwordField, Rule = model => _userValidationService.IsValidPasswordComplexity(model.Password), ErrorMessage = "changepassword.weakpassword".AsWebSiteString() }, }; return(passwordForm.IsValid(validationRules, modelState)); }
public override string GeneratePassword() { var pass = Security.RandomStringGenerator.Generate(4, 4, 0, 2); return(_userValidationService.IsValidPasswordComplexity(pass) ? pass : Security.RandomStringGenerator.Generate(4, 4, 1, 4)); }