ASP.NET Членство / Роль провайдеров для MySQL? - PullRequest
12 голосов
/ 11 января 2010

Я совсем не знаком с членством / ролями ASP.NET. Я впервые использую его и впервые пробую ASP.NET MVC. Когда я создаю свой первый проект для MVC, он дает мне прекрасный шаблон для создания учетной записи. Я был взволнован, увидев, что мне не пришлось делать это вручную. Однако это не удалось, поскольку он не может подключиться к SQL Server. У меня нет SQL Server, у меня есть MySQL. Есть ли какой-нибудь простой способ заставить эту систему использовать MySQL вместо этого, или мне придется создавать собственную аутентификацию?

Ответы [ 6 ]

19 голосов
/ 11 января 2010

Понял! Используя версию 6.2.2.0 MySql Connector / Net , выполните следующие действия ...

  • Добавить ссылку на MySql.Web.dll
  • Измените <membership> в web.config на это:

    <membership defaultProvider="MySqlMembershipProvider">
      <providers>
        <clear/>
        <add name="MySqlMembershipProvider"
             type="MySql.Web.Security.MySQLMembershipProvider,
                   MySql.Web, Version=6.2.2.0, Culture=neutral,
                   PublicKeyToken=c5687fc88969c44d"
             autogenerateschema="true"
             connectionStringName="NAME_OF_YOUR_CONN_STRING"
             enablePasswordRetrieval="false"
             enablePasswordReset="true"
             requiresQuestionAndAnswer="false"
             requiresUniqueEmail="false"
             passwordFormat="Hashed"
             maxInvalidPasswordAttempts="5"
             minRequiredPasswordLength="6"
             minRequiredNonalphanumericCharacters="0"
             passwordAttemptWindow="10"
             passwordStrengthRegularExpression=""
             applicationName="/"
         />
      </providers>
    </membership>
  • Запустить проект | Средство настройки ASP.NET и перейдите на вкладку Безопасность, чтобы проверить
  • Протестировано на ASP.NET 3.5, MySQL Server версии 5.1, Windows XP 64-bit
2 голосов
/ 06 ноября 2012

В первоначальном вопросе не указывалось, какая версия ASP.NET и MVC использовалась. С недавним выпуском .NET 4.5 и MVC 4 я столкнулся с той же проблемой, что и OP, но с новыми технологиями. Это мое быстрое исправление для него , в основном такое же, как и у ответа Джоша Стодолы, но с некоторыми дополнительными шагами.

<membership defaultProvider="MySqlMembershipProvider">
  <providers>
    <clear />
    <add name="MySqlMembershipProvider"
         type="MySql.Web.Security.MySQLMembershipProvider,
         MySql.Web, Version=6.5.4.0, PublicKeyToken=c5687fc88969c44d"
     autogenerateschema="true"
     connectionStringName="*NAME_OF_YOUR_CONN_STRING*"
     enablePasswordRetrieval="false"
     enablePasswordReset="true"
     requiresQuestionAndAnswer="false"
     requiresUniqueEmail="false"
     passwordFormat="Hashed"
     maxInvalidPasswordAttempts="5"
     minRequiredPasswordLength="6"
     minRequiredNonalphanumericCharacters="0"
     passwordAttemptWindow="10"
     passwordStrengthRegularExpression=""
     applicationName="/" />
  </providers>
</membership>

Получите AccountController и Views работающие:

  1. Удалите MVC 4 AccountController, AccountModels, папку представления учетной записи и _LoginPartial shared view
  2. Создание нового веб-приложения MVC 3
  3. Скопируйте MVC 3 AccountController, AccountModels, папку представления учетной записи и _LogOnPartial shared view в ваше приложение MVC 4
  4. Заменить @Html.Partial(“_LoginPartial”) в общем представлении _Layout на @Html.Partial(“_LogOnPartial”)
0 голосов
/ 04 декабря 2013

Пришлось пройти через нечто подобное.

Вот официальное прохождение MySql, которое мне помогло:
Учебное пособие: MySQL, Connector / Net ASP.NET, членство и поставщик ролей

Примечание. В моем случае редактируемый machine.config был 32-битный (они не указывали, какой, и редактирование 64-битного не помогало).

0 голосов
/ 30 октября 2013

В моем сценарии мне не нужно подключаться к MySQL из моих веб-приложений .NET. Поэтому я решил эту проблему, выполнив две вещи:

1) Удалите MySQL .NET Connector (все версии) 2) Внутри файла Web.Config удалите все ключи, которые были добавлены после установки MySQL. (В противном случае перед установкой скопируйте исходный файл Web.Config в корневую папку веб-приложения .NET)

Теперь мое приложение .NET имеет BAC

0 голосов
/ 17 мая 2011

Я сделал это с asp.net, но думаю, что это можно использовать и для mvc: hasangursoy.com.tr / aspnet-авторизация-аутентификация-с-mysql

0 голосов
/ 11 января 2010

Нажмите в меню «Проект», затем «Конфигурация ASP.NET».

Это создаст базу данных sql для вас в папке Data.

Используйте Visual Studio для просмотра данных.

Надеюсь, это поможет.

Редактировать

Я должен добавить, что затем вы можете использовать Ctrl + Alt + S, чтобы увидеть обозреватель сервера, который затем позволит вам увидеть базу данных с ее таблицами и данными.

Вам не нужно устанавливать SQL.

...