Spec-Zone.ru › MySQL Connectors 1.0

6.2.1 Учебник: Connector/NET ASP.NET Учётные записи и поставщики ролей

Многие веб-сайты предлагают пользователям возможность создавать учётные записи. Затем они могут войти на сайт и получить персонализированный опыт. Для этого разработчику необходимо создавать таблицы базы данных для хранения информации о пользователях, а также код для сбора и обработки этих данных. Это представляет собой дополнительную нагрузку для разработчика, и существует вероятность внедрения проблем безопасности в разработанный код. Однако ASP.NET представил систему учётных записей. Эта система построена вокруг концепции поставщиков учётных записей, профилей и ролей, которые вместе обеспечивают все функции для реализации системы пользователей, которую ранее разработчику приходилось создавать с нуля.

В настоящее время MySQL Connector/NET включает поставщики для веб-приложений для учётных записей (или простых учётных записей), ролей, профилей, состояния сеанса, карты сайта и персонализации веб-сайта.

Этот учебник показывает, как настроить веб-приложение ASP.NET для использования поставщиков учётных записей и ролей Connector/NET. Предполагается, что у вас установлен MySQL Server, а также Connector/NET и Microsoft Visual Studio. Этот учебник был протестирован с Connector/NET 6.0.4 и Microsoft Visual Studio 2008 Professional Edition. Рекомендуется использовать версию 6.0.4 или выше для этого учебника.

  1. Создайте новую базу данных MySQL с помощью программы MySQL Command-Line Client (mysql) или другого подходящего инструмента. Название базы данных не имеет значения, но запишите его. Вы укажете его в строке подключения, которая будет построена позже в этом учебнике. Эта база данных содержит таблицы, автоматически созданные для вас позже, используемые для хранения данных о пользователях и ролях.

  2. Создайте новый веб-сайт ASP.NET в Visual Studio. Если вы не уверены, как это сделать, обратитесь к разделу 6.4 «Учебник: Привязка данных в ASP.NET с использованием LINQ на сущностях», который демонстрирует, как создать простой веб-сайт ASP.NET.

  3. Добавьте ссылки на MySql.Data и MySql.Web в проект веб-сайта.

  4. Найдите файл machine.config на вашей системе, который является конфигурационным файлом .NET Framework.

  5. Найдите в файле machine.config поставщика учётных записей MySQLMembershipProvider.

  6. Добавьте атрибут autogenerateschema="true". Теперь соответствующий раздел должен напоминать следующий пример.

    Примечание

    Для краткости некоторые сведения исключены.

    <membership>
     <providers>
       <add name="AspNetSqlMembershipProvider"
         type="System.Web.Security.SqlMembershipProvider"
         ...
         connectionStringName="LocalSqlServer"
         ... />
       <add name="MySQLMembershipProvider"
         autogenerateschema="true"
         type="MySql.Web.Security.MySQLMembershipProvider,
               MySql.Web, Version=6.0.4.0, Culture=neutral,
               PublicKeyToken=c5687fc88969c44d"
         connectionStringName="LocalMySqlServer"
         ... />
     </providers>
    </membership>
    
    Примечание

    Строка подключения, LocalMySqlServer, подключается к серверу MySQL, содержащему базу данных учётных записей.

    Атрибут autogenerateschema="true" заставит Connector/NET беззвучно создать или обновить схему на сервере базы данных, чтобы она содержала необходимые таблицы для хранения информации об учётных записях.

  7. Теперь необходимо создать строку подключения, на которую ссылался предыдущий шаг. Загрузите файл web.config для веб-сайта в Visual Studio.

  8. Найдите раздел, отмеченный <connectionStrings>. Добавьте следующую информацию о строке подключения.

    <connectionStrings>
      <remove name="LocalMySqlServer"/>
      <add name="LocalMySqlServer"
           connectionString="Datasource=localhost;Database=users;uid=root;pwd=password"
           providerName="MySql.Data.MySqlClient"/>
    </connectionStrings>
    

    Указанная база данных — та, что была создана на первом шаге. В качестве альтернативы можно было использовать существующую базу данных.

  9. На данном этапе выполните сборку решения, чтобы убедиться в отсутствии ошибок. Это можно сделать, выбрав в главном меню Сборка, Сборка решения или нажав F6.

  10. ASP.NET поддерживает концепцию локально и удалённо аутентифицированных пользователей. При локальной аутентификации пользователь авторизуется с помощью своих учетных данных Windows при попытке получить доступ к веб-сайту. Это может быть полезно в среде интрасети. При удалённой аутентификации пользователю предлагается ввести свои данные для входа при доступе к веб-сайту, и эти учетные данные проверяются по информации об учётных записях, хранящейся в сервере базы данных, например, MySQL Server. Теперь вы увидите, как выбрать этот тип аутентификации.

    Запустите инструмент администрирования веб-сайта ASP.NET. Это можно быстро сделать, нажав на значок молотка/Земли в обозревателе решений. Также этот инструмент можно запустить, выбрав в главном меню Веб-сайт, а затем Настройка ASP.NET.

  11. В инструменте администрирования веб-сайта ASP.NET перейдите на вкладку Безопасность и выполните следующие действия:

    1. Нажмите ссылку Тип аутентификации пользователей.

    2. Выберите параметр Из интернета. Теперь веб-сайт должен предоставить форму для ввода пользователем своих данных для входа. Эти данные будут проверены по информации об учётных записях, хранящейся в базе данных MySQL.

  12. Теперь необходимо указать используемый поставщик ролей и учётных записей. Перейдите на вкладку Поставщик и выполните следующие действия:

    1. Нажмите ссылку Выбрать другой поставщик для каждой функции (расширенный).

    2. Для поставщика учётных записей выберите параметр MySQLMembershipProvider, а для поставщика ролей — MySQLRoleProvider.

  13. В Visual Studio перестройте решение, нажав в главном меню Сборка, а затем Перестроить решение.

  14. Проверьте, создана ли необходимая схема. Это можно сделать с помощью SHOW DATABASES; и SHOW TABLES; интерпретатора команд mysql.

    mysql> SHOW DATABASES;
    +---------------------+
    | Database            |
    +---------------------+
    | information_schema  |
    | mysql               |
    | test                |
    | users               |
    | world               |
    +---------------------+
    5 rows in set (0.01 sec)
    
    mysql> SHOW TABLES;
    +---------------------------+
    | Tables_in_users           |
    +---------------------------+
    | my_aspnet_applications    |
    | my_aspnet_membership      |
    | my_aspnet_profiles        |
    | my_aspnet_roles           |
    | my_aspnet_schemaversion   |
    | my_aspnet_users           |
    | my_aspnet_usersinroles    |
    +---------------------------+
    7 rows in set (0.00 sec)
    
  15. При условии, что всё присутствует и правильно, теперь вы можете создавать пользователей и роли для своего веб-приложения. Самый простой способ сделать это — с помощью инструмента администрирования веб-сайтов ASP.NET. Однако многие веб-приложения содержат собственные модули для создания ролей и пользователей. Для простоты в этом учебнике будет использоваться инструмент администрирования веб-сайтов ASP.NET.

  16. В инструменте администрирования веб-сайтов ASP.NET перейдите на вкладку Безопасность. Теперь, когда поставщик учётных записей и ролей включены, вы увидите ссылки для создания ролей и пользователей. Нажмите ссылку Создать или управлять ролями.

  17. Теперь вы можете ввести имя новой роли и нажать Добавить роль, чтобы создать новую роль. Создавайте новые роли по мере необходимости.

  18. Нажмите кнопку Назад.

  19. Нажмите ссылку Создать пользователя. Теперь вы можете заполнить информацию о создаваемом пользователе и назначить его одной или нескольким ролям.

  20. С помощью интерпретатора команд mysql можно проверить, была ли ваша база данных правильно заполнена данными об учётных записях и ролях.

    mysql> SELECT * FROM my_aspnet_users;
    
    mysql>  SELECT * FROM my_aspnet_roles;
    

В этом учебнике вы узнали, как настроить поставщики учётных записей и ролей Connector/NET для использования в вашем веб-приложении ASP.NET.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/connector-net-en/connector-net-tutorials-asp-roles.html

Spec-Zone.ru

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