Разрабатывая приложение на ASP.NET, требующее регистрации пользователей, мы сталкиваемся с проблемой слишком сложной процедуры регистрации. Во-первых по умолчанию требуется задавать достаточно сложный пароль, длинной от 7 символов с обязательным использованием не только цифр но и спец-символов типа @#$. Во-вторых требуется указать секретный вопрос и ответ. Это хорошие требования, но не все наши ASP.NET приложения настолько серьезны, что требуют длинного и сложного пароля и секретных вопросов.
Для того, чтобы упростить процедуру регистрации есть простой способ. Он заключается в изменении файла конфигурации Web.config. В секции
<providers></providers>нам необходимо добавить дополнительные атрибуты для Membership Provider.
<configuration>
<system.web>
<membership defaultProvider=»MembershipProvider»>
<providers>
<clear/>
<add name=»MembershipProvider» connectionStringName=»MemberchipConnection» applicationName=»My.WebApplication» type=»System.Web.Security.SqlMembershipProvider»
requiresQuestionAndAnswer=»false»
requiresUniqueEmail=»true»
minRequiredPasswordLength=»6″
minRequiredNonalphanumericCharacters=»0″
/>
</providers>
</membership>
</system.web>
</configuration>
Как видите, мы избавились от требований задавать секретные вопросы и ответы, использовать спец-символы в пароле, уменьшили минимальную длинну пароля но оставили требование уникальности Email адреса, если мы не хотим дублирующихся регистраций одного и того-же пользователя.
Если же вам нравится использовать регулярные выражения, то вы можете задать атрибут passwordStrengthRegularExpression=»…» и прописать в нем условие, каким бы вам хотелось видеть пароль.
Существует и множество дополнительных атрибутов для настройки MembershipProvider:
enablePasswordRetrieval=»false»
enablePasswordReset=»true»
passwordFormat=»Hashed»
maxInvalidPasswordAttempts=»5″
passwordAttemptWindow=»10″
Полный их список можно посмотреть в MSDN: http://msdn.microsoft.com/en-us/library/f1kyba5e.aspx