1

Я использую ASP.NET MVC5, который имеет ненавязчивый валидатор, подключенный для проверки на стороне клиента из коробки. Я настроил свой IdentityConfig.cs так:Проверка подлинности паролей ASP.NET MVC не предупреждает о некоторых обязательных требованиях на стороне клиента?

manager.PasswordValidator = new PasswordValidator 
{ 
    RequiredLength = 8, 
    RequireNonLetterOrDigit = true, 
    RequireDigit = true, 
    RequireLowercase = true, 
    RequireUppercase = true, 
}; 

Если пароль не слишком долго проверки на стороне клиента предупреждает должным образом. Но, похоже, он не проверяет остальные критерии (по крайней мере, одну цифру, по крайней мере, в верхнем регистре, хотя бы одну строчную букву, даже не говоря о специальных символах). В моем случае использования было бы важно иметь их на стороне клиента.

Каков наилучший способ включения этих дополнительных проверок? Должен ли я настраивать собственные правила ненавязчивой проверки? Как это повлияет на ненавязчивую проверку?

+1

Вы можете просто использовать 'RegularExpressionAttribute' применяется к собственности –

+0

@StephenMuecke Спасибо, что это очень хорошее руководство! –

+0

Я пытаюсь '[RegularExpression (@"^(. {0,7} | [^ 0-9] * | [^ AZ] * | [a-zA-Z0-9] *) $ "," Пароль должен иметь хотя бы ... ")', но он, похоже, не срабатывает. –

ответ

1

Добавить RegularExpressionAttribute в вашу собственность. На основании ответа Шринивас на Regex for Password Must be contain at least 8 characters, least 1 number and both lower and uppercase letters and special characters, следующий должен соответствовать вашим правилам

[RegularExpression(@"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[[email protected]$!%*?&])[A-Za-z\[email protected]$!%*?&]{8,}", ErrorMessage = "...")] 
public string Password { get; set; } 

и в представлении

@Html.PasswordFor(m => m.Password) 
@Html.ValidationMessageFor(m =>m.Password) 

 Смежные вопросы

  • Нет связанных вопросов^_^