наконец-то у меня получилось, и я хотел бы поделиться информацией здесь.Я использую последнюю версию Connector / Net (6.3.6) на веб-сайте ASP.NET MVC 2.Вот что я сделал:
1) создайте новую базу данных MySql (или просто используйте свою, если есть).
2) убедитесь, что ваш machine.config включил автогенерацию схемы для MySQLMembershpProvider.Как вы, вероятно, знаете, machine.config обычно находится в каталоге c: \ windows \ microsoft.net \ framework [version] \ config \ machine.config.Найдите под записью MySQLMembershipProvider и добавьте атрибут autogenerateschema = "true" к элементу.Весь элемент будет выглядеть следующим образом:
<add name="MySQLMembershipProvider" type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web, Version=6.3.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Clear" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression="" autogenerateschema="true"/>
3) в вашем web.config (я имею в виду недавно созданное веб-приложение, поэтому при необходимости внесите изменения) измените строки подключения и провайдеров так,что они ссылаются на MySql.Обычно: под connectionStrings добавьте:
<remove name="ApplicationServices"/>
<add name="ApplicationServices" connectionString=connectionString="server=YOURSERVER;UserId=YOURUSER;password=YOURPASSWORD;Persist Security Info=True;database=YOURDATABASE;charset=utf8" providerName="MySql.Data.MySqlClient"/>
(Кстати, обратите внимание на charset = utf8 в строке подключения: это не требуется для членства, но это необходимо, если вы собираетесьиспользуйте эту строку соединения для обмена данными Юникода: недостаточно просто определить набор символов в полях таблицы MySql!).
Кроме того, в разделе членство / поставщики ... убедитесь, что элемент поставщика членства (обычночто-то вроде add name = "AspNetSqlMembershipProvider" ...) Атрибут connectionStringName относится к строке соединения, которую вы установили выше (в моем случае, connectionStringName = "ApplicationServices").Сделайте то же самое для поставщиков профиля и roleManager, которые должны выглядеть следующим образом:
<code>
<profile>
<providers>
<clear/>
<add type="MySql.Web.Profile.MySQLProfileProvider, MySql.Web, Version=6.3.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"
name="AspNetSqlProfileProvider"
applicationName="/"
connectionStringName="ApplicationServices"
autogenerateschema="true"/>
</providers>
</profile>
<roleManager enabled="true" defaultProvider="MySqlRoleProvider">
<providers>
<clear />
<add connectionStringName="ApplicationServices"
applicationName="/"
name="MySqlRoleProvider"
type="MySql.Web.Security.MySQLRoleProvider,MySql.Web,Version=6.3.6.0,Culture=neutral,PublicKeyToken=c5687fc88969c44d"
autogenerateschema="true"/>
</providers>
</roleManager>
<machineKey validationKey="AutoGenerate" validation="SHA1"/>
(Обратите внимание на проверку SHA1!).
4) запускWSAT из Visual Studio и пусть он настраивает вашу базу данных MySql.Он должен создать все необходимые таблицы и позволить вам создавать пользователей и назначать роли.Остерегайтесь таблиц имен!С WSAT-таблицами, такими как myaspnet_Users (не myaspnet_users), создаются, и это может привести к путанице (MySQL Workbench, похоже, смущен этим и покажет вам только 1 таблицу, если у вас есть 2 таблицы, имена которых отличаются только регистром.кажись умнее в этом отношении).Лучше позволить WSAT создавать свои таблицы, чтобы избежать этой суеты.
Наконец, помните, что если вы собираетесь использовать таблицы my_aspnet ... в некоторых отношениях, вы должны убедиться, что выбрали правильный движок базы данных MySQL,то есть не MyISAM, а InnoDB, иначе ваши внешние ключи, даже если они установлены, будут игнорироваться.
Это все, чем я могу поделиться в этом вопросе.Надеюсь, это может сэкономить несколько часов кому-то еще ...