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
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" };
|
|
}
|
|
}
|
|
}
|