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.
 
 
 

42 lines
1.4 KiB

using System.Text.RegularExpressions;
namespace Business.KftcPasswordRule
{
/// <summary>
/// </summary>
public class PatternMatchRule : PasswordRule
{
private string pattern = @"^(?=.*\d)(?=.*[A-Z]).{9,30}$";
/// <summary>
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public PasswordValidationResult Validate(ValidationModel model)
{
if (model == null)
{
return new PasswordValidationResult { IsValid = false, Message = "invalid password." };
}
if (string.IsNullOrEmpty(model.Password))
{
return new PasswordValidationResult { IsValid = false, Message = "invalid password." };
}
var res = Regex.IsMatch(model.Password, pattern);
if (!res.Equals(true))
{
return new PasswordValidationResult { IsValid = false, Message = "invalid password" };
}
Regex r = new Regex(@"[~`!@#$%^&*()-+=|\{}':;.,<>/?]");
if (!r.IsMatch(model.Password))
{
return new PasswordValidationResult { IsValid = false, Message = "invalid password.Pattern mismatch." };
}
return new PasswordValidationResult { IsValid = true, Message = "valid" };
}
}
}