You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
1.4 KiB

1 year ago
  1. using System.Text.RegularExpressions;
  2. namespace Business.KftcPasswordRule
  3. {
  4. /// <summary>
  5. /// </summary>
  6. public class PatternMatchRule : PasswordRule
  7. {
  8. private string pattern = @"^(?=.*\d)(?=.*[A-Z]).{9,30}$";
  9. /// <summary>
  10. /// </summary>
  11. /// <param name="model"></param>
  12. /// <returns></returns>
  13. public PasswordValidationResult Validate(ValidationModel model)
  14. {
  15. if (model == null)
  16. {
  17. return new PasswordValidationResult { IsValid = false, Message = "invalid password." };
  18. }
  19. if (string.IsNullOrEmpty(model.Password))
  20. {
  21. return new PasswordValidationResult { IsValid = false, Message = "invalid password." };
  22. }
  23. var res = Regex.IsMatch(model.Password, pattern);
  24. if (!res.Equals(true))
  25. {
  26. return new PasswordValidationResult { IsValid = false, Message = "invalid password" };
  27. }
  28. Regex r = new Regex(@"[~`!@#$%^&*()-+=|\{}':;.,<>/?]");
  29. if (!r.IsMatch(model.Password))
  30. {
  31. return new PasswordValidationResult { IsValid = false, Message = "invalid password.Pattern mismatch." };
  32. }
  33. return new PasswordValidationResult { IsValid = true, Message = "valid" };
  34. }
  35. }
  36. }