Я только что скачал и установил самый последний MySQL .net разъем, 6.3.6, и он отлично подключается к БД.Моя проблема с настройками web.config, которые я для него установил.Кажется, что свойство MinRequiredNonAlphanumericCharacters жестко запрограммировано в «1».
Я изменил это значение на 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.Я скопировал значение web.config прямо из примера в документации, поставляемой с MySQL-соединителем .net.
Любая помощь приветствуется.