Spec-Zone.ru › MySQL Connectors 1.0

6.2 Модель поставщика ASP.NET и руководства

  • 6.2.1 Руководство: поставщик членства и ролей ASP.NET Connector/NET
  • 6.2.2 Руководство: поставщик профилей ASP.NET Connector/NET
  • 6.2.3 Руководство: поставщик персонализации веб-частей
  • 6.2.4 Руководство: простой веб-поставщик членства

MySQL Connector/NET включает модель поставщика для использования с приложениями ASP.NET. Эта модель позволяет разработчикам сосредоточиться на бизнес-логике своего приложения, вместо того, чтобы создавать такие стандартные элементы, как поддержка членства и ролей.

Connector/NET поддерживает следующие веб-поставщики:

  • Поставщик членства

  • Поставщик ролей

  • Поставщик профилей

  • Поставщик состояния сессии

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

Поставщик членства

Поставщик по умолчанию System.Web.Security.SqlMembershipProvider
Поставщик MySQL MySql.Web.Security.MySQLMembershipProvider

Поставщик ролей

Поставщик по умолчанию System.Web.Security.SqlRoleProvider
Поставщик MySQL MySql.Web.Security.MySQLRoleProvider

Поставщик профилей

Поставщик по умолчанию System.Web.Profile.SqlProfileProvider
Поставщик MySQL MySql.Web.Profile.MySQLProfileProvider

Поставщик состояния сессии

Поставщик по умолчанию System.Web.SessionState.InProcSessionStateStore
Поставщик MySQL MySql.Web.SessionState.MySqlSessionStateStore
Примечание

Поставщик состояния сессии MySQL использует немного другой регистр в имени класса по сравнению с другими поставщиками MySQL.

Установка поставщиков

Установка Connector/NET устанавливает поставщиков и регистрирует их в файле конфигурации .NET (machine.config) на вашем компьютере. Дополнительные записи изменяют раздел system.web файла, который после установки выглядит примерно так:

<system.web>
  <processModel autoConfig="true" />
  <httpHandlers />
  <membership>
    <providers>
      <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression="" />
      <add name="MySQLMembershipProvider" type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web, Version=6.1.1.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="" />
    </providers>
  </membership>
  <profile>
    <providers>
      <add name="AspNetSqlProfileProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
      <add name="MySQLProfileProvider" type="MySql.Web.Profile.MySQLProfileProvider, MySql.Web, Version=6.1.1.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" />
    </providers>
  </profile>
  <roleManager>
    <providers>
      <add name="AspNetSqlRoleProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
      <add name="AspNetWindowsTokenRoleProvider" applicationName="/" type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
      <add name="MySQLRoleProvider" type="MySql.Web.Security.MySQLRoleProvider, MySql.Web, Version=6.1.1.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" />
    </providers>
  </roleManager>
</system.web>

Каждый тип поставщика может иметь несколько реализаций поставщика. Поставщик по умолчанию также может быть установлен здесь с помощью атрибута defaultProvider, но обычно это устанавливается в файле web.config, либо вручную, либо с помощью инструмента конфигурации ASP.NET.

На момент написания данного документа MySqlSessionStateStore не добавляется в machine.config во время установки, поэтому добавьте следующее:

<sessionState>
  <providers>
    <add name="MySqlSessionStateStore" type="MySql.Web.SessionState.MySqlSessionStateStore, MySql.Web, Version=6.1.1.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" />
  </providers>
</sessionState>

Поставщик состояния сессии использует атрибут customProvider вместо defaultProvider для установки поставщика по умолчанию. Типичный файл конфигурации web.config может содержать:

   <system.web>
        <membership defaultProvider="MySQLMembershipProvider" />
        <roleManager defaultProvider="MySQLRoleProvider" />
        <profile defaultProvider="MySQLProfileProvider" />
        <sessionState customProvider="MySqlSessionStateStore" />
        <compilation debug="false">
          ...

Это устанавливает поставщики MySQL в качестве поставщиков по умолчанию, которые будут использоваться в этом веб-приложении.

Поставщики реализованы в файле mysql.web.dll, который можно найти в папке вашей установки Connector/NET. Нет необходимости запускать скрипты SQL для настройки схемы базы данных, так как поставщики создают и поддерживают правильную схему автоматически.

Работа с поставщиками MySQL

Самый простой способ начать использовать поставщики — использовать инструмент конфигурации ASP.NET, который доступен в палитре инструментов Solution Explorer при открытом проекте веб-сайта.

На открытых веб-страницах вы можете выбрать поставщики членства и ролей MySQL, выбрав пользовательский поставщик для каждой области.

При установке поставщика он создает строку подключения по умолчанию с именем LocalMySqlServer. Хотя это необходимо для работы поставщика в инструменте конфигурации ASP.NET, вы переопределяете эту строку подключения в своём файле web.config. Для этого сначала удалите строку подключения по умолчанию, а затем добавьте правильную строку, как показано в следующем примере:

<connectionStrings>
  <remove name="LocalMySqlServer"/>
  <add name="LocalMySqlServer" connectionString="server=xxx;uid=xxx;pwd=xxx;database=xxx"/>
</connectionStrings>
Примечание

В этой строке подключения необходимо указать базу данных.

Руководство, демонстрирующее использование поставщиков членства и ролей, можно найти в следующем разделе раздел 6.2.1, «Руководство: поставщик членства и ролей ASP.NET Connector/NET».

Развертывание

Для использования поставщиков на сервере производства распределите сборки MySql.Data и MySql.Web и либо зарегистрируйте их в кэше глобальных сборок удаленных систем, либо сохраните их в каталоге bin вашего приложения.

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

Spec-Zone.ru

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