Опубликован: 24.01.2007 | Уровень: специалист | Доступ: платный
Лекция 7:

Настроечные параметры CLR

< Лекция 6 || Лекция 7: 1234 || Лекция 8 >
Аннотация: Три раздела, описываемые в этой лекции, настраивают параметры для CLR (common language runtime - общая среда выполнения промежуточного языка). Эти параметры задают версию среды выполнения, запуск сборщика мусора и параметры криптографии.

Три раздела, описываемые в этой лекции, настраивают параметры для CLR (common language runtime – общая среда выполнения промежуточного языка). Эти параметры задают версию среды выполнения, запуск сборщика мусора и параметры криптографии.

Предостережение Эти параметры должны задаваться только в файле machine.config сервера или в настроечном файле вашего приложения.

В этой лекции приведено описание следующих разделов.

  • <mscorlib>. Настраивает соответствия между дружественными именами и классами криптографии.
  • <runtime>. Определяет версию сборки и запуск сборщика мусора.
  • <startup>. Определяет среду выполнения CLR, используемую при выполнении приложения.

Работа с разделом <mscorlib>

Раздел <mscorlib> содержит параметры для настройки некоторых криптографических возможностей Microsoft .NET Framework. Используемые элементы расположены в подразделе <cryptographySettings>.

Использование раздела <cryptographySettings>

Подраздел содержит два элемента, которые создают соответствия для криптографии и соответствия OID<cryptoNameMapping> и <oidMap>.

Использование элемента <cryptoNameMapping>

Элемент <cryptoNameMapping> задает соответствия между классами безопасности и их дружественными именами. Он содержит два элемента – <cryptoClasses> и <nameEntry>.

Использование элемента <cryptoClasses>. Элемент <cryptoClasses> содержит список классов криптографии, которые будут иметь соответствующие им дружественные имена, объявленные с помощью элемента <nameEntry>. Элемент, используемый для создания ссылки на класс криптографии, называется <cryptoClass>. Ниже приведен его синтаксис.

<cryptoNameMapping>
  <cryptoClasses>
    <cryptoClass CryptoName="CryptoClass, AssemblyName" />
  </cryptoClasses>
</cryptoNameMapping>

Ниже показан пример элемента <cryptoClass>, использованного для объявления нового класса.

<cryptoNameMapping>
  <cryptoClasses>
    <cryptoClass CustomRSA="CustomRSAClass, MyCustomAssembly
      Culture=neutral, PublicKeyToken=b77a5c561934e089,
      Version=1.0.0.0" />
  </cryptoClasses>
</cryptoNameMapping>

Для завершения создания соответствия имени можно использовать элемент <nameEntry>.

Использование элемента <nameEntry>. Элемент <nameEntry> ставит в соответствие классу, объявленному вами в разделе <cryptoClasses>, дружественное имя. Ниже приведен его синтаксис.

<cryptoNameMapping>
  <nameEntry name="friendly name" class="Crypto Class Name" />
</cryptoNameMapping>

В таблице 7.1 содержится перечень свойств элемента <nameEntry>.

Таблица 7.1. Свойства <nameEntry>
Свойство Описание
name Дружественное имя, используемое для создания экземпляра данного класса.
class Имя класса, указанное в элементе <cryptoClass>.

Ниже приведен пример использования элемента <nameEntry> со связанным элементом <cryptoClass>.

<cryptographySettings>
  <cryptoNameMapping>
    <cryptoClasses>
      <cryptoClass CustomRSA="CustomRSAClass, MyCustomAssembly
        Culture=neutral, PublicKeyToken=b77a5c561934e089,
        Version=1.0.0.0" />
    </cryptoClasses>
    <nameEntry name="RSA" class="CustomRSA" />
  </cryptoNameMapping>
</cryptographySettings>

Создав такое соответствие, вы можете получить доступ к классу криптографии с помощью метода System.Security.CryptoConfig.CreateFromName. Просто передайте в метод CreateFromName имя класса, указанное в <nameEntry>. Чтобы создать экземпляр класса, объявленного в предыдущем примере, используйте System.Security.CryptoConfig.CreateFromName("RSA").

Использование элемента <oidMap>

Элемент <oidMap> создает соответствия идентификаторов объектов OID или ASN.1 и классов. Идентификаторы объектов ASN.1 определяют алгоритм для некоторых криптографических форматов. Этот элемент включает один субэлемент – <oidEntry>.

Использование элемента <oidEntry>. Элемент <oidEntry> создает соответствие между числом OID и именем класса, указанным в элементе <nameEntry>. Ниже приведен его синтаксис.

<cryptographySettings>
  <oidMap>
    <oidEntry OID="OID Value" name="Class Name" />
  </oidMap>
</cryptographySettings>

В таблице 7.2 содержится перечень свойств элемента <oidEntry>.

Таблица 7.2. Свойства <oidEntry>
Свойство Описание
OID Определяет ASN.1 OID для алгоритма, реализованного вашим классом.
name Определяет имя класса, указанное в элементе <nameEntry>.

Ниже приведен пример элемента, использованного для создания соответствия между OID и классом, объявленным в элементе <nameEntry>.

<cryptographySettings>
  <cryptoNameMapping>
    <cryptoClasses>
      <cryptoClass CustomRSA="CustomRSAClass, MyCustomAssembly
        Culture=neutral, PublicKeyToken= b77a5c561934e089,
        Version=1.0.0.0" />
    </cryptoClasses>
    <nameEntry name="RSA" class="CustomRSA" />
  </cryptoNameMapping>
  <oidMap>
    <oidEntry OID="1.3.14.33.42.46" name="RSA" />
  </oidMap>
</cryptographySettings>

Теперь OID будет ассоциирован с классом, объявленным в этом примере.

< Лекция 6 || Лекция 7: 1234 || Лекция 8 >
Геннадий Щербаков
Геннадий Щербаков

В начале года получил код dreamspark  H4RQ9-QJ6FD-YJWJT-P6FVF-HGXQZ. При  его вводе- сообщение что он просрочен.