private bool IsStrongPassword() { if (!NewPassword.Any(char.IsUpper)) return false; if (!NewPassword.Any(char.IsNumber)) return false; if (NewPassword.Length < 8) return false; return true; }
public IEnumerable <ValidationResult> Validate(ValidationContext validationContext) { var results = new List <ValidationResult>(); if (NewPassword.Any(char.IsUpper) == false) { results.Add(new ValidationResult("Password must contain at least one upper-case letter", new List <string> { "NewPassword" })); } if (NewPassword.Any(char.IsLower) == false) { results.Add(new ValidationResult("Password must contain at least one lower-case letter", new List <string> { "NewPassword" })); } if (NewPassword.Any(char.IsDigit) == false) { results.Add(new ValidationResult("Password must contain at least one digit", new List <string> { "NewPassword" })); } return(results); }
private string ValidatePassword(string NewPassword) { Random rand = new Random(); List <int> nonSelectedIndexes = new List <int>(Enumerable.Range(0, NewPassword.Length)); if (!NewPassword.Any(x => char.IsDigit(x))) { //does not contain digit char[] pass = NewPassword.ToCharArray(); int pos = nonSelectedIndexes[rand.Next(nonSelectedIndexes.Count)]; nonSelectedIndexes.Remove(pos); pass[pos] = Convert.ToChar(rand.Next(10) + '0'); NewPassword = new string(pass); } if (!NewPassword.Any(x => char.IsLower(x))) { //does not contain lower char[] pass = NewPassword.ToCharArray(); int pos = nonSelectedIndexes[rand.Next(nonSelectedIndexes.Count)]; nonSelectedIndexes.Remove(pos); pass[pos] = Convert.ToChar(rand.Next(26) + 'a'); NewPassword = new string(pass); } if (!NewPassword.Any(x => char.IsUpper(x))) { //does not contain upper char[] pass = NewPassword.ToCharArray(); int pos = nonSelectedIndexes[rand.Next(nonSelectedIndexes.Count)]; nonSelectedIndexes.Remove(pos); pass[pos] = Convert.ToChar(rand.Next(26) + 'A'); NewPassword = new string(pass); } return(NewPassword); }