Spec-Zone.ru › MySQL Connectors 1.0

5.7.2 Настройка частичного доверия с установленной библиотекой Connector/NET в GAC

Если библиотека установлена в GAC, необходимо включить параметр подключения includesecurityasserts=true в строке подключения. Это новое требование, начиная с MySQL Connector/NET 6.6.4.

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

  1. Установите Connector/NET: версию 6.6.1 или более позднюю, или 6.5.4 или более позднюю.

  2. После установки библиотеки внесите следующие изменения в конфигурацию:

    В разделе SecurityClasses добавьте определение класса MySqlClientPermission, включая используемую версию.

    <configuration>
      <mscorlib>
        <security>
          <policy>
            <PolicyLevel version="1">
              <SecurityClasses>
                ....
                <SecurityClass Name="MySqlClientPermission" Description="MySql.Data.MySqlClient.MySqlClientPermission,
                MySql.Data, Version=6.6.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    

    Прокрутите вниз до раздела ASP.Net:

    <PermissionSet  class="NamedPermissionSet"  version="1"  Name="ASP.Net">
    

    Добавьте новую запись для подробной настройки класса MySqlClientPermission:

    <IPermission class="MySqlClientPermission" version="1" Unrestricted="true"/>
    
    Примечание

    Данная конфигурация является наиболее обобщенным способом, включающим все ключевые слова.

  3. Настройте сервер MySQL для приема подключений через pipe, добавив параметр --enable-named-pipe в командной строке. Для получения дополнительной информации см. .

  4. Убедитесь, что провайдер хостинга установил библиотеку Connector/NET (MySql.Data.dll) в GAC.

  5. По желанию, провайдер хостинга может избежать предоставления разрешений глобально, используя новый класс MySqlClientPermission в политиках доверия. (Альтернативой является глобальное разрешение прав System.Net.SocketPermission, System.Security.Permissions.ReflectionPermission, System.Net.DnsPermission и System.Security.Permissions.SecurityPermission).

  6. Создайте простое веб-приложение с помощью Visual Studio 2010.

  7. Добавьте ссылку в вашем приложении на библиотеку MySql.Data.MySqlClient.

  8. Измените файл web.config, чтобы ваше приложение работало с уровнем доверия «Средний»:

    <system.web>
      <trust level="Medium"/>
    </system.web>
    
  9. Добавьте пространство имен MySql.Data.MySqlClient в страницу кода сервера.

  10. Определите строку подключения, несколько отличающуюся в зависимости от версии Connector/NET.

    Только для 6.6.4 и более поздних версий: Для использования подключений внутри любого веб-приложения, которое будет работать со средним уровнем доверия, добавьте новый параметр includesecurityasserts в строку подключения. includesecurityasserts=true, что заставляет библиотеку запросить следующие разрешения при необходимости: SocketPermissions, ReflectionPermissions, DnsPermissions, SecurityPermissions, а также другие, не предоставляемые на уровнях доверия «Средний».

    Для Connector/NET 6.6.3 или более ранних версий: В строке подключения не требуется специальная настройка для безопасности.

    MySqlConnectionStringBuilder myconnString = new MySqlConnectionStringBuilder("server=localhost;User Id=root;database=test");
    myconnString.PipeName = "MySQL55";
    myconnString.ConnectionProtocol = MySqlConnectionProtocol.Pipe;
    // Following attribute is a new requirement when the library is in the GAC.
    // Could also be done by adding includesecurityasserts=true; to the string literal
    // in the constructor above.
    // Not needed with Connector/NET 6.6.3 and earlier.
    myconnString.IncludeSecurityAsserts = true;
    
  11. Определите используемый класс MySqlConnection:

    MySqlConnection myconn = new MySqlConnection(myconnString.ConnectionString);
    myconn.Open();
    
  12. Получите данные из ваших таблиц:

    MySqlCommand cmd = new MySqlCommand("Select * from products", myconn);
    MySqlDataAdapter da = new MySqlDataAdapter(cmd);
    DataSet1 tds = new DataSet1();
    da.Fill(tds, tds.Tables[0].TableName);
    GridView1.DataSource = tds;
    GridView1.DataBind();
    myconn.Close()
    
  13. Запустите программу. Она должна успешно завершиться без необходимости в специальном коде или возникновения проблем с безопасностью.

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

Spec-Zone.ru

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