我刚刚下载并安装了最新的MySQL .net连接器6.3.6,它连接到数据库就好了。我的问题是我为它设置的web.config设置。看起来MinRequiredNonAlphanumericCharacters属性被硬编码为'1'。MySql .net连接器成员资格提供者默认MinRequiredNonAlphanumericCharacters
我已将此更改为0,5或任何其他数字。我甚至设置了一个网页来显示提供者的属性。如果我更改web.config中的值,则值会更新。看来MinRequiredNonAlphanumericCharacters不会改变。
<membership defaultProvider="MySqlMembershipProvider">
<providers>
<clear/>
<add name="MySqlMembershipProvider" autogenerateschema="true" connectionStringName="LocalMySqlServer"
type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web, Version=6.3.6.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"
applicationName="MySite"
maxInvalidPasswordAttempts="3"
enablePasswordReset="true"
enablePasswordRetrieval="false"
requiresQuestionAndAnswer="true"
requiresUniqueEmail="true"
passwordFormat="Hashed"
passwordAttemptWindow="10"
minRequiredNonAlphanumericCharacters="0"
minRequiredPasswordLength="44"/>
</providers>
</membership>
再次,数据库连接工作得很好,因为我没有发布连接字符串。 44分钟的密码长度仅用于测试。
protected void Page_Load(object sender, EventArgs e)
{
MembershipProvider p = Membership.Provider;
Literal1.Text = "Min Pass length: " + p.MinRequiredPasswordLength.ToString() +
"<br/> Required non-alpha: " + p.MinRequiredNonAlphanumericCharacters.ToString() +
"<br/>App Name: " + p.ApplicationName;
}
三个我只测试,只有MinRequiredNonAlphanumericCharacters中保持在“1”不管我在web.config将其更改为。我甚至将它改为'abcd'并且没有收到.NET运行时错误。我认为它是硬编码的地方,或者我没有在web.config中使用正确的属性名称。我直接从例如MySQL.net连接器附带的文档中复制了web.config的值。
任何帮助将不胜感激。