asp.net MVC инструмент для восстановления пароля не работает - PullRequest
2 голосов
/ 01 июля 2010

Я использую контроль восстановления пароля в веб-приложении ASP.NET MVC 2.Когда я нажимаю кнопку отправки без имени пользователя, это означает, что имя пользователя отсутствует со звездочкой.Если я ввожу имя пользователя, форма отправляется, но ничего не происходит.Я что-то здесь упускаю?

Web.config:

<system.net>
  <mailSettings>
    <smtp deliveryMethod="Network" from="yyy@zzz.com">
      <network host="mail.zzz.com" userName="yyy@zzz.com" 
        password="xxxxx" enableSsl="false" />               
    </smtp>
  </mailSettings>
</system.net>   

machine.config

<membership defaultProvider="MySQLMembershipProvider">
<providers>
<add name="MySQLMembershipProvider" 
type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web, Version=6.3.2.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" 
autogenerateschema="true"
connectionStringName="LocalMySqlServer" 
enablePasswordRetrieval="false" 
enablePasswordReset="true" 
requiresQuestionAndAnswer="false" 
applicationName="/" 
requiresUniqueEmail="true" 
passwordFormat="Hashed" 
maxInvalidPasswordAttempts="5" 
minRequiredPasswordLength="6" 
minRequiredNonalphanumericCharacters="1" 
passwordAttemptWindow="10" 
passwordStrengthRegularExpression="" />
</providers>
</membership>

1 Ответ

0 голосов
/ 18 марта 2011

В соответствии с вашей конфигурацией вы используете хешированные пароли, и получение пароля отключено.Это означает, что вы не можете восстановить пароли (потому что они хэшированы).Вы можете только сбросить их.

Это безопасная настройка, поэтому не меняйте ее.Но имейте в виду, что вы не можете «восстановить» пароли, когда они хешируются.

Если в ваших требованиях указано, что пароли должны быть восстанавливаемыми, вам придется изменить формат пароля для Encrypted и установить enablePasswordRetrieval = "true".Но знайте, что любые хешированные пароли и ответы на пароли в вашей базе данных должны будут повторно вводиться пользователем, поскольку текущие значения будут «повреждены», если это касается поставщика.Чтобы применить это изменение, вы можете переопределить метод Authenticate на своей странице входа в систему и проверить дату LastPasswordChange пользователя, а затем перенаправить его на страницу, чтобы заново настроить свой пароль и ответить, чтобы они могли правильно войти в систему.хотя упомянуто, что зашифрованные пароли могут быть восстановлены, потому что они могут быть расшифрованы.Это означает, что они менее безопасны.Поэтому придерживайтесь хешированных паролей, если можете.

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