public override async Task <IdentityResult> ValidateAsync(UserManager <AppUser> userManager, AppUser user, string password) { IdentityResult result = await base.ValidateAsync(userManager, user, password); List <IdentityError> errors = result.Succeeded ? new List <IdentityError>() : result.Errors.ToList(); if (await usedPasswordsService.IsPreviouslyUsedPasswordAsync(user, password)) { errors.Add(new IdentityError { Code = "PasswordIsPreviouslyUsed", Description = "این کلمهی عبور پیشتر توسط شما استفاده شدهاست و تکراری میباشد." }); } if (IsBanPassword(password)) { errors.Add(new IdentityError { Code = "PasswordIsNotSafe", Description = "کلمهی عبور وارد شده به سادگی قابل حدس زدن است." }); } return(errors.Count == 0 ? IdentityResult.Success : IdentityResult.Failed(errors.ToArray())); }
public override async Task <IdentityResult> ValidateAsync(UserManager <User> manager, User user, string password) { var errors = new List <IdentityError>(); if (string.IsNullOrWhiteSpace(password)) { errors.Add(new IdentityError { Code = "PasswordIsNotSet", Description = "لطفا کلمهی عبور را تکمیل کنید." }); return(IdentityResult.Failed(errors.ToArray())); } if (string.IsNullOrWhiteSpace(user?.UserName)) { errors.Add(new IdentityError { Code = "UserNameIsNotSet", Description = "لطفا نام کاربری را تکمیل کنید." }); return(IdentityResult.Failed(errors.ToArray())); } // First use the built-in validator var result = await base.ValidateAsync(manager, user, password); errors = result.Succeeded ? new List <IdentityError>() : result.Errors.ToList(); // Extending the built-in validator if (password.Contains(user.UserName, StringComparison.OrdinalIgnoreCase)) { errors.Add(new IdentityError { Code = "PasswordContainsUserName", Description = "کلمهی عبور نمیتواند حاوی قسمتی از نام کاربری باشد." }); return(IdentityResult.Failed(errors.ToArray())); } if (!isSafePasword(password)) { errors.Add(new IdentityError { Code = "PasswordIsNotSafe", Description = "کلمهی عبور وارد شده به سادگی قابل حدس زدن است." }); return(IdentityResult.Failed(errors.ToArray())); } if (await _usedPasswordsService.IsPreviouslyUsedPasswordAsync(user, password)) { errors.Add(new IdentityError { Code = "IsPreviouslyUsedPassword", Description = "لطفا کلمهی عبور دیگری را انتخاب کنید. این کلمهی عبور پیشتر توسط شما استفاده شدهاست و تکراری میباشد." }); return(IdentityResult.Failed(errors.ToArray())); } return(!errors.Any() ? IdentityResult.Success : IdentityResult.Failed(errors.ToArray())); }
public override async Task <IdentityResult> ValidateAsync(UserManager <AppUser> manager, AppUser user, string password) { var errors = new List <IdentityError>(); if (string.IsNullOrWhiteSpace(password)) { errors.Add(new IdentityError { Code = "PasswordIsNotSet", Description = "Please complete the password." }); return(IdentityResult.Failed(errors.ToArray())); } if (string.IsNullOrWhiteSpace(user?.UserName)) { errors.Add(new IdentityError { Code = "UserNameIsNotSet", Description = "Please complete the username." }); return(IdentityResult.Failed(errors.ToArray())); } // First use the built-in validator var result = await base.ValidateAsync(manager, user, password); errors = result.Succeeded ? new List <IdentityError>() : result.Errors.ToList(); // Extending the built-in validator if (password.Contains(user.UserName, StringComparison.OrdinalIgnoreCase)) { errors.Add(new IdentityError { Code = "PasswordContainsUserName", Description = "The password can not contain your username." }); return(IdentityResult.Failed(errors.ToArray())); } if (!isSafePasword(password)) { errors.Add(new IdentityError { Code = "PasswordIsNotSafe", Description = "The password is too easy to guess." }); return(IdentityResult.Failed(errors.ToArray())); } if (await _usedPasswordsService.IsPreviouslyUsedPasswordAsync(user, password)) { errors.Add(new IdentityError { Code = "IsPreviouslyUsedPassword", Description = "This password has been used previously.Please choose another one." }); return(IdentityResult.Failed(errors.ToArray())); } return(!errors.Any() ? IdentityResult.Success : IdentityResult.Failed(errors.ToArray())); }