Как изменить проверку пароля в ASP.Net MVC Identity 2?

Как изменить проверку пароля в ASP.Net MVC5 Identity 2?

Спасибо


person Nazmul Hossain    schedule 17.07.2014    source источник
comment
Ну, по умолчанию аннотация данных регистрационной формы asp.net MVC работает для проверки клиентского сайта. Это хорошо. но после отправки формы приходит эта проверка. Пароли должны содержать хотя бы один небуквенный или цифровой символ. В пароле должна быть хотя бы одна строчная буква («a» - «z»). Пароли должны содержать хотя бы одну заглавную букву («A» - «Z»). но я не могу найти этот код проверки сообщения, чтобы изменить себя. Как я могу это изменить?   -  person Nazmul Hossain    schedule 17.07.2014
comment
Обновление: видеоурок по ASP.Net MVC5 Identity2, youtube.com/playlist?list=PLQYI9   -  person Nazmul Hossain    schedule 01.02.2015


Ответы (2)


В шаблоне проекта MVC в VS2013 Update 2 должен быть файл с именем App_Start/IdentityConfig.cs. В нем вы должны найти класс ApplicationUserManager и статический фабричный метод с именем Create(). Здесь настраивается класс диспетчера пользователей, в том числе определяются правила проверки паролей на стороне сервера. Например:

manager.PasswordValidator = new PasswordValidator
{
    RequiredLength = 6,
    RequireNonLetterOrDigit = true,
    RequireDigit = true,
    RequireLowercase = true,
    RequireUppercase = true,
};
person Anthony Chu    schedule 18.07.2014
comment
Следует отметить, что перечисленные вами правила по умолчанию приведут к ошибке для пароля Test123 с сообщением «Пароли должны содержать хотя бы один небуквенный или цифровой символ». что очень обманчиво, потому что кажется, что если и RequireNonLetterOrDigit, и RequireDigit равны true, то RequireDigit крадет числовой текст и заставляет проверку пароля завершиться неудачно, а затем говорит пользователю сделать то, что он уже сделал. - person Chris Marisic; 09.09.2014
comment
RequireNonLetterOrDigit = для пароля требуется символ, который не является буквой и не цифрой. - person pippopd; 19.11.2014
comment
Как переопределить возвращаемый текст ошибки? - person Brian Behm; 18.03.2015
comment
В новом ASP.NET 5 соответствующий метод найти не удалось. Можете ли вы предложить какой-либо другой способ, который сработает в этом? - person It's a trap; 05.03.2016
comment
@ Itatrap - В Startup.cs есть метод ConfigureServices. Там вы хотите изменить вызов services.AddIdentity на это: services.AddIdentity ‹ApplicationUser, IdentityRole› (x = ›{x.Password.RequiredLength = 6; x.Password.RequireUppercase = false; x.Password.RequireLowercase = false; x.Password.RequireNonAlphanumeric = false;}) .AddEntityFrameworkStores ‹ApplicationDbContext› () .AddDefaultTokenProviders (); - person Mike Devenney; 19.07.2017

В дополнение к ответу Энтони Чу,

Вам также может потребоваться изменить его в папке Models> AccountViewModel.cs> class RegisterViewModel (а также класс ResetPasswordViewModel)

Измените «MinimumLength = 6» (нужно прокрутить вправо)

 [Required]
 [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
 [DataType(DataType.Password)]
 [Display(Name = "Password")]
 public string Password { get; set; }
person nanonerd    schedule 28.09.2015
comment
В моем случае у меня был упомянутый выше код в ApplicationUserManager.cs, расположенный в папке Model. - person webworm; 10.08.2016
comment
Я установил несколько параметров для добавления пользователя в файл Startup.cs. Частично это установка пароля пользователя. Когда установлено здесь, даже после изменения деталей как в этом ответе, так и в ответе Энтони. Я все еще получаю требование ввести пароль длиной в 6 символов. Хотя в обоих местах (а также в классах SetPasswordViewModel и ChangePasswordViewModel из ManagerViewModels.cs я установил для всех их значение 2. Есть ли еще одно место, где выполняется эта проверка. Я использую VS2015? - person Francis Rodgers; 06.09.2016