Spec-Zone .ru
спецификации, руководства, описания, API

22.2.5.18. ASP.NET Модель Провайдера

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

MySQL предоставления Connector/Net следующие провайдеры:

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

Провайдер членства

Провайдер значения по умолчанию MySQL Provider
System.Web.Security.SqlMembershipProvider MySql.Web.Security.MySQLMembershipProvider

Ролевой Провайдер

Провайдер значения по умолчанию MySQL Provider
Система. Сеть. Безопасность. SqlRoleProvider MySql. Сеть. Безопасность. MySQLRoleProvider

Провайдер профиля

Провайдер значения по умолчанию MySQL Provider
Система. Сеть. Профиль. SqlProfileProvider MySql. Сеть. Профиль. MySQLProfileProvider

Провайдер SessionState

Провайдер значения по умолчанию MySQL Provider
System.Web.SessionState.InProcSessionStateStore MySql.Web.SessionState.MySqlSessionStateStore
Отметить

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

Установка Провайдеров

Установка Соединителя/Сети 5.1 или позже установит провайдеров и зарегистрирует их в конфигурационном файле.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>

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

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

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

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

Используя Провайдеров

Самый легкий способ начать использовать провайдеров состоит в том, чтобы использовать 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>

Отметьте, что база данных, чтобы соединиться с должна быть определена.

Вместо того, чтобы вручную редактировать конфигурационные файлы, рассмотрите использование MySQL Website Configuration tool, чтобы сконфигурировать Вашу требуемую установку провайдера. От MySQL, Connector/Net 6.1.1 вперед, все провайдеры могут быть выбраны и сконфигурированы от этого мастера. Инструмент изменяет Ваш website.config файл к требуемой конфигурации. Учебное руководство при выполнении этого доступно в Разделе следующего раздела 22.2.3.12, "MySQL Website Configuration Tool".

Учебное руководство, демонстрирующее, как использовать Провайдеров Членства и Роли, может быть найдено в Разделе следующего раздела 22.2.4.2, "Учебное руководство: MySQL, Connector/Net ASP.NET Членство и Ролевой Провайдер".

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

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