MySQL Forms Authentication哈希密码问题

时间:2010-06-22 05:20:02

标签: mysql authentication asp.net-membership forms-authentication

我正在尝试将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>

我正在使用MembershipProvider类的ValidateUser方法来执行身份验证。如果行passwordFormat="Hashed"更改为passwordFormat="Clear",则用户将进行身份验证。更改machine.config文件中的设置后,我删除所有用户并重新创建帐户。我检查了aspnet表的内容,密码被正确存储为哈希 - 只是无法验证。

1 个答案:

答案 0 :(得分:4)

看起来我不是唯一注意到这个错误的人:http://forums.mysql.com/read.php?38,368612,372250。通过将以下内容添加到web.config:

轻松修复
<system.web>
  <machineKey validationKey="AutoGenerate" validation="SHA1" />
</system.web>