Работа с разделом <machineKey>
В ASP.NET имеется несколько объектов и ресурсов, которые должны быть зашифрованы с целью обеспечения защиты. Раздел <machineKey> содержит ключи проверки и расшифровки, используемые для шифрования некоторых объектов ASP.NET, включая данные cookie форм аутентификации, данные viewstate и информацию о состоянии сессии, расположенной вне основного процесса. Ниже приведен синтаксис раздела <machineKey>.
<machineKey validationKey="validation key" decryptionKey="decryption key" validation="validation setting" />
Свойства раздела <machineKey> приведены в табл. 4.15.
validationKey | Определяет ключ, который будет использоваться для проверки зашифрованных данных. Если enableViewStateMAC в разделе <pages> установлен в значение true, то этот ключ создает код аутентификации сообщения (message authentication code – MAC), который гарантирует, что состояние представления не было изменено. Этот ключ также используется для создания идентификаторов приложения, работающего вне основного процесса, которые позволяют отдельно хранить состояние переменных сессии между различными сессиями.
AutoGenerate Указывает, что ASP.NET должна генерировать случайный ключ и хранить его в Local Security Authority. Если вы можете добавить модификатор IsolateApps, ASP.NET для каждого приложения сгенерирует уникальный зашифрованный ключ, используя ID приложения. Specific Value Можно вручную указать ключ проверки так, что для всей веб-формы будет использоваться одно и то же значение этого ключа. Это значение должно иметь длину от 40 до 128 символов (20 – 64 байт). | |
decryptionKey | Определяет ключ, который используется для шифрования и расшифровки данных форм аутентификации, а также для информации о состоянии представления при условии, что validation установлен в значение 3DES.
AutoGenerate Указывает, что ASP.NET должна генерировать случайный ключ и хранить его в Local Security Authority. Если вы добавите модификатор IsolateApps, ASP.NET для каждого приложения сгенерирует уникальный зашифрованный ключ, используя ID приложения. Specific Value Можно вручную указать ключ проверки так, что для всей веб-формы будет использоваться одно и то же значение этого ключа. При использовании шифрования DES ключ должен иметь длину в 16 символов, а при использовании шифрования Triple DES – 48 символов. Triple DES используется только на тех системах, где доступно 128-битное шифрование. | |
validation | Определяет тип шифрования, используемого для проверки данных.
SHA1 Указывает, что проверка будет использовать шифрование SHA1. MD5 Указывает, что проверка использует шифрование MD5. 3DES Указывает, что проверка использует шифрование 3DES. Аутентификация с использованием форм по-прежнему использует SHA1. |
Ниже показан пример раздела <machineKey>.
<machineKey validationKey="AutoGenerate, IsolateApps" decryptionKey="AutoGenerate, IsolateApps" validation="SHA1 " />
В этом примере оба ключа являются автогенерируемыми, и используется опция IsolateApps. Это набор параметров по умолчанию для файла machine.config.