Конфигурирование и настройка Microsoft ASP.NET

         

Использование элемента <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").



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


Элемент <developmentMode> указывает среде выполнения производить поиск сборок в директориях, заданных в переменной среды окружения DEVPATH. Ниже приведен синтаксис этого элемента.

<developmentMode developerInstallation="true | false" />

В таблице 7.3 содержится свойство этого элемента.

Таблица 7.3. Свойство <developmentMode>

СвойствоОписание
developerInstallationОпределяет, будет ли среда выполнения искать сборки в переменной среды окружения DEVPATH.

true Среда выполнения использует этот путь.

false Среда выполнения не использует этот путь.

Ниже приведен пример этого элемента.

<runtime> <developmentMode developerInstallation="true" /> </runtime>

В примере задается указание среде выполнения производить поиск сборок в директориях, указанных в переменной среды окружения DEVPATH. Среда выполнения не смотрит на информацию о версии; она использует первую найденную сборку.



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




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

<runtime> <gcConcurrent enabled="true | false" /> </runtime>

В таблице 7.11 содержится свойство этого элемента.

Таблица 7.11. Свойства <gcConcurrent>

СвойствоОписание
enabledОпределяет запуск сборщика мусора в одном потоке с приложением.

true Сборщик мусора запускается в одном потоке с приложением.

false Сборщик мусора запускается в отдельном потоке выполнения.

Ниже приведен пример этого элемента.

<runtime> <gcConcurrent enabled="false" /> </runtime>

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



Использование элемента <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 будет ассоциирован с классом, объявленным в этом примере.



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


Элемент <probing> - это субэлемент элемента <assemblyBinding>. В элементе <probing> можно указать несколько поддиректорий, в которых будет производиться поиск сборок при их загрузке. Ниже приведен синтаксис этого элемента.

<runtime> <assemblyBinding> <probing privatePath="sub directories" /> </assemblyBinding> </runtime>

Свойства элемента <probing> приведены в табл. 7.9.

Таблица 7.9. Свойства <probing>

СвойствоОписание
privatePathОпределяет список директорий, разделенных точкой с запятой, в которых среда выполнения производит поиск.

Ниже приведен пример элемента <probing>.

<runtime> <assemblyBinding> <probing privatePath="bin;bin\netmail;bin2" /> </assemblyBinding> </runtime>

Здесь среда выполнения включит в поиск сборок директории bin, bin\netmail и bin2.



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


В дополнение к использованию элемента <publisherPolicy> в элементе <dependentAssembly> можно использовать элемент <publisherPolicy> как субэлемент <assemblyBinding>. При использовании его в качестве субэлемента <assemblyBinding> элемент <publisherPolicy> применяется ко всем сборкам, а не только к одному приложению. Синтаксис и атрибуты элемента <publisherPolicy> аналогичны таковым субэлемента в элементе <dependentAssembly>.



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


Элемент <qualifyAssembly> задает соответствие между частичными именами сборок и их полными именами. Ниже приведен синтаксис этого элемента.

<runtime> <assemblyBinding> <qualifyAssembly partialName="partial name' fullName="full name' /> </assemblyBinding> </runtime>

Свойства этого элемента приведены в табл. 7.10.

Таблица 7.10. Свойства <qualifyAssembly>

СвойствоОписание
partialNameОпределяет частичное имя сборки.
fullNameОпределяет полное имя сборки, находящейся в глобальном кэше сборок.

Ниже приведен пример этого элемента.

<runtime> <assemblyBinding> <qualifyAssembly partialName="netmail" fullName="netmail, version 2.0.0.0, publickeyToken=a1690a5ea44bab32, culture=neutral" /> </assemblyBinding> </runtime>

Теперь, при обращении к сборке netmail приложение будет перенаправляться на имя этой сборки в глобальном кэше сборок.



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


Элемент <requiredRuntime> определяет версию .NET Framework для запуска данного приложения. Он используется только приложениями, созданными посредством.NET Framework версии 1.0. Ниже приведен синтаксис этого элемента.

<startup> <requiredRuntime version="framework version" safemode="true | false" /> </startup>

Свойства элемента <requiredRuntime> перечислены в табл. 7.12.

Таблица 7.12. Свойства <requiredRuntime>

СвойстваОписание
versionОпределяет версию .NET Framework, которая требуется для приложения. Значение должно в точности соответствовать имени директории, в которой находится .NET Framework.
safemodeОпределяет, будет ли приложение работать в "безопасном" режиме. При запуске приложения в безопасном режиме оно не проверяет в реестре версию среды выполнения.

true Приложение работает в безопасном режиме.

false Приложение не работает в безопасном режиме.

Ниже приведен пример этого элемента.

<startup> <requiredRuntime version="v1.0.3705" safemode="false" /> </startup>

Здесь задается использование приложением только версии 1.0 среды .NET Framework, а также запрещается выполнение в безопасном режиме, позволяя приложению обратиться за информацией о версии к реестру.



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


Элемент <supportedRuntime> определяет версию .NET Framework, которая будет поддерживаться приложением. Этот элемент работает с приложениями, созданными с использованием .NET Framework версии 1.1. Ниже приведен синтаксис этого элемента.

<startup> <supportedRuntime version="version number" /> </startup>

В таблице 7.13 содержится свойство элемента <supportedRuntime>.

Таблица 7.13. Свойство <supportedRuntime>

СвойствоОписание
versionОпределяет версию .NET Framework, которая поддерживается приложением. Значение должно в точности соответствовать имени директории .NET Framework.

Ниже приведен пример этого элемента.

<startup> <supportedRuntime version="v1.0.3705" /> <supportedRuntime version="v1.1.4122" /> </startup>

Здесь указывается, что приложение поддерживает обе версии .NET Framework – версию 1.0 и версию 1.1.



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


Раздел <assemblyBinding> содержит несколько подразделов и атрибутов. Вы можете использовать этот раздел для указания перенаправлений версий сборок и расположения других сборок. Сначала приведем описание атрибутов раздела <assemblyBinding>, а затем перейдем к субэлементам. Ниже приведен синтаксис этого раздела.

<assemblyBinding xmlns="xml namespace" appliesTo="framework version" />

В таблице 7.4 содержится перечень свойств этого раздела.

Таблица 7.4. Свойства <assemblyBinding>

СвойствоОписание
xmlnsОпределяет пространство имен XML, которое требуется для привязки сборки.
appliesToОпределяет версию .NET Framework, к которой применяется перенаправление данной сборки. Атрибут был добавлен в версии 1.1 и игнорируется версией 1.0.

Ниже показан пример того, как следует использовать свойства этого раздела.

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" appliesTo="v1.0.3705" />

Здесь ограничивается перенаправление сборки только теми приложениями, которые выполняются в .NET Framework версии 1.0.

Элемент <assemblyBinding> содержит несколько субэлементов, с которыми вы познакомитесь дальше.



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


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



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


Элемент <dependentAssembly> содержит все спецификации для каждой сборки, которую нужно перенаправить. Он включает информацию об идентификации, месте расположения, список перенаправляемых версий и тому подобное. Этот элемент не имеет атрибутов, но содержит несколько субэлементов.

Использование элемента <assemblyIdentity>. Элемент <assemblyIdentity> содержит информацию о сборке, включая имя сборки, последовательность открытого ключа и культуру. Каждый элемент <dependentAssembly> должен содержать элемент <assemblyIdentity>. Ниже приведен синтаксис этого элемента.

<dependentAssembly> <assemblyIdentity name="assembly name" publicKeyToken= "assembly public key token" culture="assembly culture " /> </dependentAssembly>

В таблице 7.5 содержится перечень свойств этого элемента.

Таблица 7.5. Свойства <assemblyIdentity>

СвойствоОписание
nameОпределяет имя сборки и является обязательным.
publicKeyTokenОпределяет последовательность открытого ключа, который входит строгим именем сборки.
cultureОпределяет страну или регион сборки (обычно равно neutral).

Ниже приведен пример этого элемента.

<dependentAssembly> <assemblyIdentity name="netMail" publicKeyToken="a1690a5ea44bab32" culture="neutral" /> </dependentAssembly>

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

<dependentAssembly> <codeBase version="assembly version" href="url location of assembly" /> </dependentAssembly>

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

Таблица 7.6. Свойства <codeBase>

СвойствоОписание
versionОпределяет версию сборки, к которой применяется данный элемент.
hrefОпределяет расположение сборки.

Ниже приведен пример этого элемента.

<dependentAssembly> <assemblyIdentity name="netMail" publicKeyToken="a1690a5ea44bab32" culture="neutral" /> <codeBase version="1.0.0.0" href="http://www.microsoft.com/netmail.dll" /> </dependentAssembly>


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

<dependentAssembly> <bindingRedirect oldVersion="old assembly version" newVersion="new assembly version" /> </dependentAssembly>

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

Таблица 7.7. Свойства <bindingRedirect>СвойствоОписание
oldVersionОпределяет версию сборки, которая будет перенаправлена. Можно также ввести диапазон номеров версий (1.0.0.0 – 2.0.0.1).
newVersionОпределяет версию сборки, на которую будет перенаправлен запрос.
Ниже приведен пример этого элемента.

<dependentAssembly> <assemblyIdentity name="netMail" publicKeyToken="a1690a5ea44bab32" culture="neutral" /> <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0" /> </dependentAssembly>


Ключевые моменты


Раздел <mscorlib> предоставляет разделы и элементы, которые создают соответствия между дружественными именами и OID и классами криптографии.Раздел <runtime> содержит параметры для настройки сборок, используемых вместе с приложением.Элемент <gcConcurrent> определяет запуск сборщика мусора в том же потоке выполнения, что и приложение, или в отдельном потоке. Раздел <startup> определяет версию .NET Framework для запуска приложения.



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


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



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


Раздел <runtime> содержит несколько элементов и параметров, которые настраивают работу общей среды выполнения. Он включает параметры сборщика мусора, а также параметры для определения используемой версии сборки. Хотя этот раздел не часто используется в коде ASP.NET, вам следует познакомиться с его опциями.



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


Данный раздел настроечного файла определяет версию среды выполнения CLR, используемую при запуске приложения.