MySQL Forms Authentication Проблема с хешированным паролем - PullRequest
2 голосов
/ 22 июня 2010

Я пытаюсь использовать службу аутентификации форм ASP.NET с версией коннектора MySQL 6.3.2.Я смог заставить его работать, используя пароли в открытом тексте, но не смог заставить работать хешированные пароли.Вот фрагмент из моего файла machine.config

<system.web>
  <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>
</system.web>

Я использую метод ValidateUser класса MembershipProvider для выполнения аутентификации.Если строка passwordFormat="Hashed" изменяется на passwordFormat="Clear", пользователи будут проходить аутентификацию.После изменения настроек в файле machine.config я удаляю всех пользователей и воссоздаю учетные записи.Я проверил содержимое таблиц aspnet и пароли правильно хранятся в виде хэшей - просто не удается проверить.

1 Ответ

4 голосов
/ 22 июня 2010

Похоже, я не единственный, кто заметил эту ошибку: http://forums.mysql.com/read.php?38,368612,372250. Легко исправить, добавив в web.config следующее:

<system.web>
  <machineKey validationKey="AutoGenerate" validation="SHA1" />
</system.web>
...