Поделиться через


Элемент machineKey (схема параметров ASP.NET)

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

Настраивает ключи, используемые для шифрования и дешифровки данных cookie проверки подлинности форм и данных состояния отображения, а также для проверки идентификационных данных состояния внешнего сеанса.

Элемент configuration (схема общих параметров)
  Элемент system.web (схема параметров ASP.NET)
    Элемент machineKey (схема параметров ASP.NET)

<machineKey 
  validationKey="AutoGenerate,IsolateApps" [String]
  decryptionKey="AutoGenerate,IsolateApps" [String]
  validation="SHA1" [SHA1 | MD5 | 3DES | AES]
  decryption="Auto" [Auto | DES | 3DES | AES]
/>

Атрибуты и элементы

В следующих разделах описаны атрибуты, дочерние элементы и родительские элементы.

Атрибуты

Атрибут

Описание

decryption

Необязательный атрибут String.

Указывает тип алгоритма кэширования, используемого для расшифровки данных.

Этот атрибут может принимать одно из следующих значений.

ЗначениеОписание
Auto Указывает, что ASP.NET определяет используемый алгоритм расшифровки на основе параметров конфигурации. Это значение расшифровки machineKey, используемое по умолчанию.
AES Задает алгоритм расшифровки данных (Rijndael) AES в ASP.NET. AES является алгоритмом расшифровки, используемым по умолчанию.
3DES Задает алгоритм расшифровки данных TripleDES в ASP.NET. Алгоритм TripleDES (3DES) использует три последовательные итерации алгоритма DES.
DES Задает алгоритм расшифровки данных DES в ASP.NET.
w8h3skw9.alert_note(ru-ru,VS.90).gifПримечание.
Этот атрибут не использовался до .NET Framework версии 2.0.

decryptionKey

Обязательный атрибут String.

Задает ключ для шифрования и расшифровки данных или процесс, в ходе которого создается ключ. Этот атрибут используется для шифрования и дешифровки при проверке подлинности форм и для шифрования состояния отображения в случае значения validation для поля TripleDES.

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

Для поддержки конфигурации в сети из нескольких веб-серверов (веб-ферме) задайте значение этого атрибута вручную, чтобы гарантировать единую настройку.

Этот атрибут может принимать одно из следующих значений. Значение по умолчанию — AutoGenerate,IsolateApps.

ЗначениеОписание
AutoGenerate, IsolateApps Модификатор AutoGenerate указывает, что ASP.NET генерирует случайный ключ и сохраняет его в LSA. Модификатор IsolateApps указывает, что ASP.NET генерирует уникальный зашифрованный ключ для каждого приложения с помощью идентификатора приложения. Это значение по умолчанию.
значение Указывает задаваемый вручную ключ. В качестве этого значения должна быть вручную установлена строка шестнадцатеричных знаков, чтобы гарантировать единую конфигурацию внутри веб-фермы. Длина ключа должна составлять 16 шестнадцатеричных знаков при использовании шифрования DES и 48 шестнадцатеричных знаков при использовании шифрования Triple DES (3DES) или AES. Если длина используемых ключей меньше максимальной длины, они должны создаваться с помощью средств, создающих полностью случайные ключи, например с помощью класса RNGCryptoServiceProvider. В ASP.NET Triple DES может использоваться только на тех компьютерах, для которых доступно 128-битное шифрование.

validation

Обязательный атрибут MachineKeyValidation.

Указывает тип шифрования, используемого для проверки данных.

Этот атрибут может принимать одно из следующих значений. Значение по умолчанию — SHA1.

ЗначениеОписание
AES Задает алгоритм (Rijndael) AES для проверки данных в ASP.NET.
MD5 Задает хэш-алгоритм Message Digest 5 (MD5) для проверки данных в ASP.NET. Эффективность этого алгоритма выше, чем у алгоритма SHA1.
SHA1 Задает хэш-алгоритм SHA1 для проверки данных в ASP.NET. Используйте этот алгоритм для повышенного уровня защиты. Это значение по умолчанию.
3DES Задает алгоритм TripleDES для проверки данных в ASP.NET. Алгоритм TripleDES использует три последовательные итерации алгоритма DES.

validationKey

Обязательный атрибут String.

Задает ключ, используемый для проверки зашифрованных данных. Если enableViewStateMAC имеет значение true, атрибут validationKey используется для создания кода подлинности сообщения (MAC), чтобы гарантировать подлинность состояния отображения. Атрибут validationKey также используется для создания внешних, зависимых от приложения идентификаторов сеансов, чтобы гарантировать изолированность переменных состояния сеансов между сеансами.

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

Для поддержки конфигурации в сети из нескольких веб-серверов (веб-ферме) задайте значение атрибута validationKey вручную, чтобы гарантировать единую настройку.

Этот атрибут может принимать одно из следующих значений. Значение по умолчанию — "AutoGenerate,IsolateApps".

ЗначениеОписание
AutoGenerate, IsolateApps Модификатор AutoGenerate указывает, что ASP.NET генерирует случайный ключ и сохраняет его в LSA. Модификатор IsolateApps указывает, что ASP.NET генерирует уникальный зашифрованный ключ для каждого приложения с помощью идентификатора приложения. Это значение по умолчанию.
значение Указывает задаваемый вручную ключ. В качестве этого значения должна быть установлена строка шестнадцатеричных знаков, чтобы гарантировать единую конфигурацию внутри веб-фермы. Длина ключа должна составлять 16 шестнадцатеричных знаков при использовании шифрования DES или 48 шестнадцатеричных знаков при использовании шифрования Triple DES (3DES) или AES. Если длина используемых ключей меньше максимальной длины, они должны создаваться с помощью средств, создающих полностью случайные ключи, например с помощью класса RNGCryptoServiceProvider. В ASP.NET Triple DES может использоваться только на тех компьютерах, для которых доступно 128-битное шифрование.

Дочерние элементы

Отсутствует.

Родительские элементы

Элемент

Описание

configuration

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

system.web

Задает корневой элемент для параметров конфигурации ASP.NET в файле конфигурации и содержит элементы конфигурации, предназначенные для настройки веб-приложений ASP.NET и управления их работой.

Заметки

В следующем примере кода показано, как атрибуту validationKey и decryptionKey задать значение AutoGenerate. Для генерации ключей, уникальных для каждого приложения на сервере, задается значение isolateApps.

<machineKey 
   validationKey="AutoGenerate,IsolateApps" 
   decryptionKey="AutoGenerate,IsolateApps" 
   validation="SHA1"
/>

Сведения об элементе

Обработчик раздела конфигурации

MachineKeySection

Элемент конфигурации

MachineKey

Настраиваемые расположения

Файл Machine.config

Файл Web.config корневого уровня

Файл Web.config уровня приложения

Требования

Microsoft IIS версии 5.0, 5.1 или 6.0

.NET Framework версии 1.0, 1.1 или 2.0

См. также

Задачи

Пошаговое руководство. Шифрование информации конфигурации с помощью функции защищенной конфигурации

Практическое руководство. Настройка отдельных каталогов с помощью параметров расположения

Пошаговое руководство. Отключение параметров конфигурации ASP.NET

Основные понятия

Обеспечение безопасности ролей

Защита членства

Защита свойств профиля

Защита состояния сеанса

Иерархия и наследование файла конфигурации ASP.NET

Настройка обеспечения безопасности ASP.NET

Сценарии конфигурации ASP.NET

Ссылки

Элемент system.web (схема параметров ASP.NET)

Элемент configuration (схема общих параметров)

System.Configuration

System.Web.Configuration

MachineKeySection

MachineKey

Другие ресурсы

Общие параметры конфигурации (ASP.NET)

Параметры конфигурации ASP.NET

Администрирование веб-узлов ASP.NET

Конфигурационный интерфейс API ASP.NET