Как связать аннотацию данных длины пароля AccountModel с поставщиком членства minRequiredPasswordLength? - PullRequest
1 голос
/ 14 февраля 2012

При работе с asp.net MVC 3 веб-сайт по умолчанию, установленный из шаблона, имеет AccountModel. В пределах этого есть DataAnnotation s для свойства пароля, и здесь MinimumLength из StringLength установлено.

Однако в поставщике членства .NET Framework вы можете установить minRequiredPasswordLength через файл web.config.

Теперь, если вы зададите для minRequiredPasswordLength значение 6, но для AccountModel.password MinimumLength будет установлено значение 1, вы не сможете зарегистрироваться, если ваш пароль имеет длину всего 1 символ. То же самое наоборот, minRequiredPasswordLength равно 1, а MinimumLength равно 6, не разрешит регистрацию.

Так что для меня это немного задом наперед. Если для установки приложения не требуется более длинная длина пароля, необходимо изменить это в модели.

DataAnnotations должны быть постоянными значениями из того, что я прочитал, так есть ли способ связать эти два? В идеале я хотел бы только изменить значение в web.config и не беспокоиться о восстановлении проектов.

Редактировать

Я обратил внимание на то, что после обновления инструментов до MVC 3 шаблон проекта на самом деле содержал аннотацию DataAnnotation, которая связывала свойство Membership minRequiredPasswordLength с web.config с AccountModel Об этом пишут здесь: http://timjames.me/mvc-3-password-length-dataannotation

1 Ответ

1 голос
/ 14 февраля 2012

Короткий ответ: ты не можешь.Аннотации данных статически компилируются в сборку и не могут быть изменены во время выполнения.

Вы можете создать пользовательскую аннотацию, которая посмотрела бы длину, или использовать удаленную проверку для проверки по значению в web.config.Но это не будет использовать стандартный атрибут длины.

...