From 5ae2e175dc6f32bc662b0c84b17855216714f874 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Wed, 16 Dec 2020 12:28:28 +0200 Subject: Added password strength validation --- .../Models/Identity/User/RegisterWebModel.cs | 1 + .../Validation/GoodPasswordModelValidation.cs | 24 ++++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 src/DevHive.Web/Models/Identity/Validation/GoodPasswordModelValidation.cs diff --git a/src/DevHive.Web/Models/Identity/User/RegisterWebModel.cs b/src/DevHive.Web/Models/Identity/User/RegisterWebModel.cs index c82263e..60e860a 100644 --- a/src/DevHive.Web/Models/Identity/User/RegisterWebModel.cs +++ b/src/DevHive.Web/Models/Identity/User/RegisterWebModel.cs @@ -28,6 +28,7 @@ namespace DevHive.Web.Models.Identity.User public string LastName { get; set; } [Required] + [GoodPassword] public string Password { get; set; } } } diff --git a/src/DevHive.Web/Models/Identity/Validation/GoodPasswordModelValidation.cs b/src/DevHive.Web/Models/Identity/Validation/GoodPasswordModelValidation.cs new file mode 100644 index 0000000..f69121a --- /dev/null +++ b/src/DevHive.Web/Models/Identity/Validation/GoodPasswordModelValidation.cs @@ -0,0 +1,24 @@ +using System; +using System.ComponentModel.DataAnnotations; + +namespace DevHive.Web.Models.Identity.Validation +{ + public class GoodPassword : ValidationAttribute + { + public override bool IsValid(object value) + { + var stringValue = (string)value; + + for (int i = 0; i < stringValue.Length; i++) + { + if (Char.IsDigit(stringValue[i])) + { + base.ErrorMessage = "Password must be atleast 5 characters long!"; + return stringValue.Length >= 5; + } + } + base.ErrorMessage = "Password must contain atleast 1 digit!"; + return false; + } + } +} -- cgit v1.2.3