Spec-Zone.ru › MySQL Connectors 1.0

6.2.4 Руководство: Простой веб-провайдер членства

В этом разделе описывается возможность использования простого провайдера членства в шаблонах MVC 4. Конфигурация совместима с OAuth для входа в приложение с использованием внешних учетных данных сторонних провайдеров, таких как Google, Facebook, Twitter или других.

В этом руководстве создается приложение, использующее простой провайдер членства, а затем добавляется поддержка аутентификации OAuth сторонних поставщиков (Google).

Примечание

Эта функция была добавлена в MySQL Connector/NET 6.9.0.

Требования

  • Connector/NET 6.9.x или более поздняя версия

  • .NET Framework 4.0 или более поздняя версия

  • Visual Studio 2012 или более поздняя версия

  • MVC 4

Создание и настройка нового проекта

Для начала работы с новым проектом выполните следующие действия:

  1. Откройте Visual Studio, создайте новый проект типа Веб-приложение ASP.NET MVC 4 и настройте проект для использования .NET Framework 4.5. На рисунке показано примерное окно «Новый проект» с выбранными элементами.

    Рисунок 6.6 Простое членство: Новый проект

    Content is described in the surrounding text.

  2. Выберите шаблон и движок представления по вашему желанию. В этом руководстве используется шаблон Шаблон Интернет-приложения с движком представлений Razor (см. следующий рисунок). Дополнительно вы можете добавить проект модульных тестов, выбрав Создать проект модульных тестов.

    Рисунок 6.7 Простое членство: Выбор шаблона и движка

    Content is described in the surrounding text.

  3. Добавьте ссылки на сборки MySql.Data, MySql.Data.Entities и MySql.Web. Выбранные сборки должны соответствовать версиям .NET Framework и Entity Framework, добавленным в проект шаблоном.

  4. Добавьте допустимую строку подключения к MySQL в файл web.config, аналогично следующему примеру.

    <add
      name="MyConnection"
      connectionString="server=localhost;
                        UserId=root;
                        password=pass;
                        database=MySqlSimpleMembership;
                        logging=true;port=3305"
      providerName="MySql.Data.MySqlClient"/>
    
  5. В узле <system.data> добавьте информацию о конфигурации, аналогично следующему примеру.

    <membership defaultProvider="MySqlSimpleMembershipProvider">
    <providers>
    <clear/>
    <add
      name="MySqlSimpleMembershipProvider"
      type="MySql.Web.Security.MySqlSimpleMembershipProvider,MySql.Web,
            Version=6.9.2.0,Culture=neutral,PublicKeyToken=c5687fc88969c44d"
      applicationName="MySqlSimpleMembershipTest"
      description="MySQLdefaultapplication"
      connectionStringName="MyConnection"
      userTableName="MyUserTable"
      userIdColumn="MyUserIdColumn"
      userNameColumn="MyUserNameColumn"
      autoGenerateTables="True"/>
    </providers>
    </membership>
    
  6. Обновите конфигурацию допустимыми значениями для следующих свойств: connectionStringName, userTableName, userIdColumn, userNameColumn и autoGenerateTables.

    • userTableName: Имя таблицы для хранения информации о пользователе. Эта таблица независима от схемы, сгенерированной провайдером, и ее можно изменить в будущем.

    • userId: Имя столбца, хранящего идентификатор записей в userTableName.

    • userName: Имя столбца, хранящего имя/пользователя для записей в userTableName.

    • connectionStringName: Это свойство должно соответствовать строке подключения, определенной в файле web.config.

    • autoGenerateTables: Это значение должно быть установлено в false, если таблица для обработки учетных данных уже существует.

  7. Обновите класс DBContext с именем строки подключения.

  8. Откройте файл InitializeSimpleMembershipAttribute.cs из папки Filters/ и найдите класс SimpleMembershipInitializer. Затем найдите вызов метода WebSecurity.InitializeDatabaseConnection и обновите параметры конфигурацией для connectionStringName, userTableName, userIdColumn и userNameColumn.

  9. Если база данных, настроенная в строке подключения, не существует, создайте её.

  10. После запуска веб-приложения на экране отобразится сгенерированная домашняя страница (см. следующий рисунок).

    Рисунок 6.8 Простое членство: Сгенерированная домашняя страница

    Content is described in the surrounding text.

  11. Если приложение выполнилось успешно, сгенерированная схема будет похожа на следующий рисунок, показывающий открытый обозреватель объектов таблиц.

    Рисунок 6.9 Простое членство: Сгенерированная схема и таблицы

    Content is described in the surrounding text.

  12. Чтобы создать вход пользователя, нажмите Зарегистрироваться на сгенерированной веб-странице. Введите имя пользователя и пароль, а затем выполните форму регистрации. Это действие перенаправит вас на домашнюю страницу с авторизованным только что созданным пользователем.

    Данные для только что созданного пользователя можно найти в таблицах UserProfile и Webpages_Membership.

Добавление аутентификации OAuth в проект

OAuth — это ещё один вариант аутентификации для веб-сайтов, которые используют простой провайдер членства. Пользователя можно верифицировать, используя внешнюю учётную запись, например, Facebook, Twitter, Google и другие.

Выполните следующие шаги, чтобы включить аутентификацию с помощью учётной записи Google в приложении:

  1. Найдите файл AuthConfig.cs в папке App_Start.

  2. Поскольку в этом руководстве используется Google, найдите метод RegisterAuth и раскомментируйте последнюю строку, где он вызывает OauthWebSecurity.RegisterGoogleClient.

  3. Запустите приложение. При запуске приложения нажмите Войти, чтобы открыть страницу входа. Затем нажмите Google в разделе Войти с помощью другой службы (показано на рисунке ниже).

    Рисунок 6.10 Простое членство с OAuth: Сервис Google

    Content is described in the surrounding text.

  4. Это действие перенаправит вас на страницу входа Google (google.com) и запросит у вас информацию для входа в вашу учётную запись Google.

  5. После ввода корректных данных появится сообщение с запросом разрешения вашему приложению на доступ к информации пользователя. Прочитайте описание, а затем нажмите Принять, чтобы разрешить указанные действия и перенаправиться обратно на страницу входа в приложение.

  6. Теперь приложение может зарегистрировать учётную запись. Поле Имя пользователя будет заполнено соответствующей информацией (в данном случае, адресом электронной почты, связанным с учётной записью Google). Нажмите Зарегистрироваться, чтобы зарегистрировать пользователя в вашем приложении.

    Теперь новый пользователь вошёл в приложение из внешнего источника с помощью OAuth. Информация о новом пользователе хранится в таблицах UserProfile и Webpages_OauthMembership.

Чтобы использовать другой внешний вариант аутентификации пользователей, необходимо включить клиента в том же классе, где мы включили провайдер Google в этом руководстве. Как правило, провайдеры требуют, чтобы вы зарегистрировали своё приложение, прежде чем разрешить аутентификацию OAuth, и после регистрации, как правило, предоставляют токен/ключ и идентификатор, которые должны быть использованы при регистрации провайдера в приложении.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/connector-net-en/connector-net-simple-membership-tutorial.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API