public override IValidationResult Validate(string userName) { List <string> errors = new List <string>(); bool isValid = true; if (string.IsNullOrEmpty(userName) || string.IsNullOrWhiteSpace(userName)) { errors.Add(_resourceManager.GetString("UsernameCannotBeEmpty")); return(new ValidationResult(false, errors)); } if (userName.Length < MinUsernameLength || userName.Length > MaxUsernameLength) { isValid = false; errors.Add(string.Format(_resourceManager.GetString("UsernameLengthMustBeInRange"), MinUsernameLength, MaxUsernameLength)); } MembershipSetting setting = _settingManager.GetContainer <MembershipSetting>().Default; if (setting != null) { if (setting.AllowOnlyAlphanumericUserNames && !userName.All(char.IsLetterOrDigit)) { isValid = false; errors.Add(_resourceManager.GetString("UsernameCanBeOnlyAlphanumeric")); } } if (userName.Any(c => !AllowedUserNameCharacters.Contains(c))) { isValid = false; errors.Add(_resourceManager.GetString("InvalidUsername")); } return(new ValidationResult(isValid, errors)); }
/// <summary> /// Validates password according to the membership password validation settings. /// </summary> /// <param name="password">Password to be valited</param> /// <returns>ValidationResult</returns> public override IValidationResult Validate(string password) { List <string> errors = new List <string>(); bool isValid = true; if (string.IsNullOrEmpty(password) || password.Any(char.IsWhiteSpace)) { errors.Add(_resourceManager.GetString("PasswordCannotBeEmpty")); return(new ValidationResult(false, errors)); } MembershipSetting setting = _settingManager.GetContainer <MembershipSetting>().Default; if (setting != null) { if (setting.MinimumPasswordRequiredLength > password.Length) { isValid = false; errors.Add(string.Format(_resourceManager.GetString("PasswordTooShort"), setting.MinimumPasswordRequiredLength)); } if (setting.RequireDigitInPassword && !password.Any(char.IsDigit)) { isValid = false; errors.Add(_resourceManager.GetString("PasswordRequiresDigit")); } if (setting.RequireLowercaseInPassword && !password.Any(char.IsLower)) { isValid = false; errors.Add(_resourceManager.GetString("PasswordRequiresLower")); } if (setting.RequireLowercaseInPassword && !password.Any(char.IsLower)) { isValid = false; errors.Add(_resourceManager.GetString("PasswordRequiresLower")); } if (setting.RequireNonLetterOrDigitInPassword && password.All(char.IsLetterOrDigit)) { isValid = false; errors.Add(_resourceManager.GetString("PasswordRequiresNonAlphanumeric")); } if (setting.RequireUppercaseInPassword && !password.Any(char.IsUpper)) { isValid = false; errors.Add(_resourceManager.GetString("PasswordRequiresUpper")); } } return(new ValidationResult(isValid, errors)); }