Надежность пароля в Entity Framework 4.1 - PullRequest
0 голосов
/ 18 января 2012

Мне нужно создать регулярное выражение для свойства пароля класса модели Entity Frame work 4.1.

Требование:

пароль должен состоять из 6-18 символов и содержать как минимум одну букву и одну цифру. Допускаются специальные символы, такие как @,%, &, #.

    [Required]
    [StringLength(18, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
    [RegularExpression(@"^((?=.*[a-z])(?=.*[A-Z])(?=.*\d)).+$", ErrorMessage = "Password doesn't meet the requirements")]
    [DataType(DataType.Password)]
    [Display(Name = "Password")]
    public string Password { get; set; }

Как я могу изменить его, чтобы разрешить специальные символы. Вызывает ли это регулярное выражение одну букву и один символ? Если нет, как я могу изменить регулярное выражение. кто-то предложил мне добавить эту логику в тег членства / провайдера в web.config. Как я могу сделать это в web.config.

<membership>
      <providers>
        <clear />
        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider"
             connectionStringName="CreditRegistryDB" enablePasswordRetrieval="false" enablePasswordReset="true"
             requiresQuestionAndAnswer="false" requiresUniqueEmail="false" passwordStrengthRegularExpression =""
             maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" applicationName="/" />
      </providers>
    </membership>

1 Ответ

2 голосов
/ 18 января 2012

Следующее регулярное выражение должно соответствовать вашим требованиям:

^.*(?=.{6,18})(?=.*\d)(?=.*[A-Za-z])(?=.*[@%&#]{0,}).*$

Это предъявляет следующие требования:

  • От 6 до 18 символов в длину
  • Должен содержать не менее одну букву и одно число
  • Может содержать один или несколько специальных символов из вашего списка @,%, & и #

фигурные скобки после ваших специальных символов обозначают следующее:

  • {1} Ровно 1 случай;
  • {6,} Не менее 6 случаев;
  • {2,6} 2-6 случаев.
  • {0,} Не менее 0 вхождений; <- в вашем случае </li>

Вы можете проверить это регулярное выражение, используя REGex TESTER , чтобы убедиться, что оно соответствует вашим требованиям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...