Шифрование и расшифровка разделов конфигурации

Visual Studio 2010

Обновлен: Ноябрь 2007

Можно использовать средство регистрации ASP.NET IIS (Aspnet_regiis.exe) для шифровки или дешифровки разделов конфигурационного файла. ASP.NET будет автоматически дешифровать зашифрованные элементы конфигурации при обработке файла Web.config.

zhhddkxy.alert_note(ru-ru,VS.100).gifПримечание.

Инструмент Aspnet_regiis.exe расположен в каталоге %windows%\Microsoft.NET\Framework\versionNumber.

Можно использовать защищенные классы конфигурации в пространстве имен System.Configuration для шифрования и дешифровки разделов файла веб-конфигурации, разделов файла конфигурации для выполнения (.exe), or или разделов в конфигурационных файлах машинного уровня и уровня приложения. Для получения дополнительных сведений см. метод ProtectSection класса SectionInformation. Дополнительные сведения о связывании разделов файла Web.config, см. в разделе WebConfigurationManager. Дополнительные сведения о связывании конфигурационных разделов файлов, отличных от Web.config, см. в разделе ConfigurationManager.

Чтобы шифровать содержимое файлов, используйте инструмент Aspnet_regiis.exe с параметром –pe и именем элемента конфигурации, который нужно зашифровать.

Используйте параметр –app для идентификации приложения для каждого файла Web.config, который будет зашифрован и параметр -site, для идентификации, какой веб-узел является частью приложения. Веб-узел идентифицируется при помощи номера сайта из метабазы IIS. Можно извлечь номер сайта из значения серверной переменной INSTANCE_META_PATH в коллекции ServerVariables. Например, при установке IIS, веб-узел с именем «Default Web Site» создается как узел 1. Для страниц, расположенных на этом сайте, серверная переменная INSTANCE_META_PATH возвращает "/LM/W3SVC/1". Если параметр -site не задается, используется узел 1.

Используйте параметр –prov для определения имени ProtectedConfigurationProvider, который будет выполнять шифрование и дешифрование. Если не задан поставщик, использующий параметр -prov, поставщик конфигурируется как defaultProvider.

zhhddkxy.alert_note(ru-ru,VS.100).gifПримечание.

Если используется экземпляр RsaProtectedConfigurationProvider, который указывает контейнер пользовательского ключа, необходимо создать ключ перед запуском инструмента Aspnet_regiis.exe. Дополнительные сведения см. в разделе Импорт и экспорт защищенных контейнеров ключей RSA для конфигурации.

Следующая команда шифрует элемент connectionStrings в файле Web.config для приложения SampleApplication. Т. к. параметр -site включен, приложение предположительно будет взято с веб-узла 1 (наиболее распространенный веб-узел по умолчанию в IIS). Шифрование выполняется при помощи RsaProtectedConfigurationProvider, указанного в машинной конфигурации.

aspnet_regiis -pe "connectionStrings" -app "/SampleApplication" -prov "RsaProtectedConfigurationProvider"

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

zhhddkxy.alert_note(ru-ru,VS.100).gifПримечание.

Чтобы зашифровать и дешифровать раздел файла Web.config, обработчик ASP.NET должен иметь разрешение на чтение информации, соответствующей ключу шифрования. Дополнительные сведения см. в разделе Импорт и экспорт защищенных контейнеров ключей RSA для конфигурации.

Чтобы дешифровать зашифрованное содержимое файлов, используйте инструмент Aspnet_regiis.exe с параметром -pd и именем элемента конфигурации, который нужно дешифровать. Используйте параметры –app и -site для идентификации, какой файл Web.config нужно дешифровать. Нужно указать параметр –prov для идентификации имени ProtectedConfigurationProvider, т. к. это информация, прочитанная из атрибута configProtectionProvider защищенного раздела конфигурации.

Следующая команда дешифрует элемент connectionStrings в файле Web.config для приложения ASP.NET SampleApplication.

aspnet_regiis -pd "connectionStrings" -app "/SampleApplication"
Показ: