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
Создание и настройка нового проекта
Для начала работы с новым проектом выполните следующие действия:
-
Откройте Visual Studio, создайте новый проект типа Веб-приложение ASP.NET MVC 4 и настройте проект для использования .NET Framework 4.5. На рисунке показано примерное окно «Новый проект» с выбранными элементами.
Рисунок 6.6 Простое членство: Новый проект
-
Выберите шаблон и движок представления по вашему желанию. В этом руководстве используется шаблон Шаблон Интернет-приложения с движком представлений Razor (см. следующий рисунок). Дополнительно вы можете добавить проект модульных тестов, выбрав Создать проект модульных тестов.
Рисунок 6.7 Простое членство: Выбор шаблона и движка
Добавьте ссылки на сборки
MySql.Data,MySql.Data.EntitiesиMySql.Web. Выбранные сборки должны соответствовать версиям .NET Framework и Entity Framework, добавленным в проект шаблоном.-
Добавьте допустимую строку подключения к MySQL в файл
web.config, аналогично следующему примеру.<add name="MyConnection" connectionString="server=localhost; UserId=root; password=pass; database=MySqlSimpleMembership; logging=true;port=3305" providerName="MySql.Data.MySqlClient"/> -
В узле
<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> -
Обновите конфигурацию допустимыми значениями для следующих свойств:
connectionStringName,userTableName,userIdColumn,userNameColumnиautoGenerateTables.userTableName: Имя таблицы для хранения информации о пользователе. Эта таблица независима от схемы, сгенерированной провайдером, и ее можно изменить в будущем.userId: Имя столбца, хранящего идентификатор записей вuserTableName.userName: Имя столбца, хранящего имя/пользователя для записей вuserTableName.connectionStringName: Это свойство должно соответствовать строке подключения, определенной в файлеweb.config.autoGenerateTables: Это значение должно быть установлено вfalse, если таблица для обработки учетных данных уже существует.
Обновите класс
DBContextс именем строки подключения.Откройте файл
InitializeSimpleMembershipAttribute.csиз папкиFilters/и найдите классSimpleMembershipInitializer. Затем найдите вызов методаWebSecurity.InitializeDatabaseConnectionи обновите параметры конфигурацией дляconnectionStringName,userTableName,userIdColumnиuserNameColumn.Если база данных, настроенная в строке подключения, не существует, создайте её.
-
После запуска веб-приложения на экране отобразится сгенерированная домашняя страница (см. следующий рисунок).
Рисунок 6.8 Простое членство: Сгенерированная домашняя страница
-
Если приложение выполнилось успешно, сгенерированная схема будет похожа на следующий рисунок, показывающий открытый обозреватель объектов таблиц.
Рисунок 6.9 Простое членство: Сгенерированная схема и таблицы
-
Чтобы создать вход пользователя, нажмите на сгенерированной веб-странице. Введите имя пользователя и пароль, а затем выполните форму регистрации. Это действие перенаправит вас на домашнюю страницу с авторизованным только что созданным пользователем.
Данные для только что созданного пользователя можно найти в таблицах
UserProfileиWebpages_Membership.
Добавление аутентификации OAuth в проект
OAuth — это ещё один вариант аутентификации для веб-сайтов, которые используют простой провайдер членства. Пользователя можно верифицировать, используя внешнюю учётную запись, например, Facebook, Twitter, Google и другие.
Выполните следующие шаги, чтобы включить аутентификацию с помощью учётной записи Google в приложении:
Найдите файл
AuthConfig.csв папкеApp_Start.Поскольку в этом руководстве используется Google, найдите метод
RegisterAuthи раскомментируйте последнюю строку, где он вызываетOauthWebSecurity.RegisterGoogleClient.-
Запустите приложение. При запуске приложения нажмите , чтобы открыть страницу входа. Затем нажмите в разделе Войти с помощью другой службы (показано на рисунке ниже).
Рисунок 6.10 Простое членство с OAuth: Сервис Google
Это действие перенаправит вас на страницу входа Google (google.com) и запросит у вас информацию для входа в вашу учётную запись Google.
После ввода корректных данных появится сообщение с запросом разрешения вашему приложению на доступ к информации пользователя. Прочитайте описание, а затем нажмите , чтобы разрешить указанные действия и перенаправиться обратно на страницу входа в приложение.
-
Теперь приложение может зарегистрировать учётную запись. Поле Имя пользователя будет заполнено соответствующей информацией (в данном случае, адресом электронной почты, связанным с учётной записью Google). Нажмите , чтобы зарегистрировать пользователя в вашем приложении.
Теперь новый пользователь вошёл в приложение из внешнего источника с помощью OAuth. Информация о новом пользователе хранится в таблицах
UserProfileиWebpages_OauthMembership.
Чтобы использовать другой внешний вариант аутентификации пользователей, необходимо включить клиента в том же классе, где мы включили провайдер Google в этом руководстве. Как правило, провайдеры требуют, чтобы вы зарегистрировали своё приложение, прежде чем разрешить аутентификацию OAuth, и после регистрации, как правило, предоставляют токен/ключ и идентификатор, которые должны быть использованы при регистрации провайдера в приложении.
© 2025 Oracle
Licensed under the GPLv2 License.