C# password validation service
PasswordValidation is a lightweight password verification service for .Net.
This service supports the use of built-in validators, to validate the new password's complexity according to a selected ruleset.
- .NET 4.5 or later
Confirm Password: Basic check to ensure that the new password and confirmed password matches.
Minimum Length: Basic check for minimum length of the password.
User ID/ User-name: Basic check to disallow the user id or user name to be in the password.
Upper-case characters: Basic check to confirm whether the password contains an upper-case character.
Lower-case characters: Basic check to confirm whether the password contains a lower-case character.
Numeric characters: Basic check to confirm whether the password contains a numeric character.
Special characters: Basic check to confirm whether the password contains any of the supplied special character(s).
White space: Basic check to disallow white space(s) in the password.
Historical passwords: Basic check to compare the provided password against previous passwords used by the user.
Black-list: Basic check to disallow the supplied list of words as possible passwords.
This is a quick introduction (PasswordValidation, world; world, PasswordValidation):
Basic example
using System; using System.Collections.Generic; using DigiRazor.PasswordValidation; using DigiRazor.PasswordValidation.Factories; using DigiRazor.PasswordValidation.Model; namespace Sample { static class Program { private static IPassword userPassword; private static IValidatorFactory validatorFactory; private static IPasswordService service; static void Main() { // Setup the ruleset var passwordRules = new PasswordRules { Validators = ValidatorTypes.Standard, MinLength = 8, MaxLength = 10, SpecialChars = new[] { '!', '@', '#', '$', '%', '*', '+', '/' }, MinHistory = 3, BlackList = new[] { "test", "password" } }; Console.WriteLine("Rules Configured:"); Console.WriteLine(); Console.WriteLine(passwordRules); Console.WriteLine(); userPassword = new Password { UserId = "ABHW089", OldPassword = "B1ge@rs*", NewPassword = "yVHn6?R@", ConfirmPassword = "yVHn6?R@", NewPasswordHash = "yVHn6?R@", IsValid = true }; userPassword.SetHistory(new List<string> { "$sG96r#X", "3g9m&9W7" }); validatorFactory = new ValidatorFactory(); service = new PasswordService(validatorFactory); service.SetupRules(passwordRules); var result = service.Validate(userPassword); if (result.IsValid == false) { Console.WriteLine(result.Reason); } else { Console.WriteLine("Success!"); } Console.ReadKey(); } } }- Feel free to add issues via github if you have any suggestions for improvement.
Appologies I've been slow with updates, had some hectic commitments.
- 1.0.0 Translations & NET Standard - Done by Nick Verschueren