У меня есть приложение на C # asp.net, использующее Sql MembershipProvider по умолчанию. Мой web.config имеет несколько настроек, которые контролируют, как я использую этот провайдер:
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresUniqueEmail="true"
passwordFormat="Hashed"
minRequiredPasswordLength="5"
Проблема, с которой я сталкиваюсь, заключается в том, что когда люди сбрасывают свои пароли, кажется, что метод ResetPassword () возвращает пароль, который длиннее, чем я хочу, и содержит символы, которые могут сбивать с толку (l, 1, i, I, 0, О). Кроме того, я отправляю своим пользователям электронное письмо с текстовым сообщением и HTML-сообщением (я использую MailMessage с AlternateViews). Если в пароле есть небезопасные символы HTML, когда почтовые клиенты отображают текст HTML, пароль может быть другим (например,%, & и <не совсем безопасны для HTML). </p>
Я просмотрел элемент «add», который принадлежит в файле web.config, но я не вижу никаких дополнительных свойств конфигурации, чтобы включить только определенные символы в метод ResetPassword () и ограничить длину пароля.
Можно ли настроить метод ResetPassword () для ограничения длины пароля и ограничения набора символов, из которого он выбирается?
Прямо сейчас у меня есть обходной путь: я вызываю ResetPassword (), чтобы убедиться, что предоставленный ответ правильный, и затем я использую Генератор RandomPassword Я скачал из Интернета, чтобы сгенерировать пароль, который мне нравится ( без неоднозначных символов, HTML-сейф и длиной всего 8 символов), а затем я вызываю ChangePassword (), чтобы изменить пароль пользователя после того, как я уже сбросил его.
Мой обходной путь кажется грязным, и я подумал, что было бы лучше настроить ResetPassword (), чтобы делать то, что я хочу.
Спасибо ~!
ColoradoTechie