вот мой случай.Сообщение об ошибке Chage для проверки политики паролей в System.Web.Security.MembershipProvider (EPiServer)
Я использую EPiServer 9 и я настроил SqlServerMembershipProvider следующим образом:
<add name="SqlServerMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
connectionStringName="EPiServerXYZ"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="false"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="8"
minRequiredNonalphanumericCharacters="1"
passwordAttemptWindow="10"
applicationName="/"
passwordStrengthRegularExpression="^.*(?=.{8,})(?=.*\d)(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[^\w\d\s]).*$" />
Все работает отлично, валидации и различные сценарии.
Наша проблема заключается в том, что сообщение об ошибке отображается поставщиком членства создается с помощью конфигурации и заканчивает тем, что дает не дружественным к пользователю сообщения, такие как:
- «Неверный пароль, минимальная длина: 8, минимальные не буквенно-цифровые символы: 1 '
- «Номера буквенных символов в« newPassword »должны быть больше или равно« 1 ». Имя параметра: newPassword '
- ' Параметр 'newPassword' не соответствует регулярному выражению, указанному в файле конфигурации. Имя параметра: Новый_пароль»
Я хотел бы, чтобы установить сообщение об ошибке пользовательский, который действительно объясняет пользователю все требования, которые мы имеем в регулярном выражении, которое используется для проверки пароля.
Единственный способ, которым я могу думать об этом до сих пор, заключается в реализации/расширении текущего провайдера, который мы используем, только для того, чтобы установить собственное сообщение об ошибке, когда что-то пойдет не так с валидацией, но я думаю, что может быть другое лучше/проще способ сделать это.
Заранее благодарен!
Пользовательский может быть лучшим маршрутом, и вам, возможно, не придется выполнять многое, кроме переопределения ValidateUser(). Если это недействительно, просто выполните управление своим пользовательским сообщением. Попробуйте это для стартеров: http://stackoverflow.com/a/12094556/2779990 –