ASP.NET machineKey Конфигурационный раздел по умолчанию - PullRequest
24 голосов
/ 21 сентября 2010

Где найти раздел конфигурации machineKey для ASP.NET?

У меня его нет в моем приложении Web.config, его нет в корне Web.config и его нет в моем machine.config.

Означает ли это, что в ASP.NET есть другие жестко заданные по умолчанию? Если это так, Какие значения по умолчанию? (Для .NET 2 и 4)

Прочитав это: http://msdn.microsoft.com/en-us/library/w8h3skw9.aspx

Я ожидал найти что-то вроде этого где-нибудь:

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

Редактировать: 1.1 документы кажутся довольно четкими по умолчанию: http://msdn.microsoft.com/en-us/library/w8h3skw9(VS.71).aspx, но 4 документа довольно неоднозначны http://msdn.microsoft.com/en-us/library/w8h3skw9.aspx

1 Ответ

33 голосов
/ 21 сентября 2010

machineKey находится под System.web записью в web.config

См. Ссылку MSDN для схемы web.config.

Если вы не видите его в своем файле web.config, вы можете просто добавить его туда.

С MSDN , снова: -)

Чтобы обеспечить защиту ViewState от несанкционированного доступа, из содержимого ViewState создается хешированный код аутентификации сообщения (HMAC), и хэш сравнивается при последующих запросах. Атрибут проверки указывает, какой алгоритм хеширования использовать, и по умолчанию используется SHA1, который использует алгоритм HMACSHA1. Допустимые варианты хеширования включают SHA1 или MD5, хотя SHA1 предпочтительнее, поскольку он создает больший хэш считается криптографически более надежным, чем MD5. Атрибут validationKey используется вместе с содержимым ViewState для создания HMAC. Если ваше приложение установлено в веб-ферме, вам нужно изменить значение validationKey с AutoGenerate, IsolateApps на конкретное значение ключа, созданное вручную.

Настройки по умолчанию для элементов <pages> и <machineKey> определены в файле web.config.comments на уровне машины.

Для machineKey, они

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

РЕДАКТИРОВАТЬ: Для .NET 4.0 алгоритм по умолчанию был изменен на SHA256 Я думаю, что самый простой способ найти значения по умолчанию - это просмотреть запись в MSDN для этого значения конфигурации.

MSDN 4.0 для machinekey, как показано ниже. Выбранные значения являются значениями по умолчанию. Значения в [] являются другими необязательными значениями, которые может принимать поле. Я помню, как читал где-то, это типичный способ обозначения значений конфигурации по умолчанию в MSDN.

<machineKey 
  validationKey="AutoGenerate,IsolateApps" [String]
  decryptionKey="AutoGenerate,IsolateApps" [String]
  validation="HMACSHA256" [SHA1 | MD5 | 3DES | AES | HMACSHA256 | 
    HMACSHA384 | HMACSHA512 | alg:algorithm_name]
  decryption="Auto" [Auto | DES | 3DES | AES | alg:algorithm_name]
/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...