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


MachineKeySection.CompatibilityMode Свойство

Определение

Возвращает или задает значение, указывающее, используются ли обновленные методы шифрования для состояния представления, введенного после выпуска пакета обновления 1 для .NET Framework версии 2.0.

public:
 property System::Web::Configuration::MachineKeyCompatibilityMode CompatibilityMode { System::Web::Configuration::MachineKeyCompatibilityMode get(); void set(System::Web::Configuration::MachineKeyCompatibilityMode value); };
[System.Configuration.ConfigurationProperty("compatibilityMode", DefaultValue=System.Web.Configuration.MachineKeyCompatibilityMode.Framework20SP1)]
public System.Web.Configuration.MachineKeyCompatibilityMode CompatibilityMode { get; set; }
[<System.Configuration.ConfigurationProperty("compatibilityMode", DefaultValue=System.Web.Configuration.MachineKeyCompatibilityMode.Framework20SP1)>]
member this.CompatibilityMode : System.Web.Configuration.MachineKeyCompatibilityMode with get, set
Public Property CompatibilityMode As MachineKeyCompatibilityMode

Значение свойства

Значение, указывающее, используются ли методы шифрования, введенные после выпуска .NET Framework 2.0 с пакетом обновления 1 (SP1).

Атрибуты

Комментарии

Обновленные методы шифрования в более поздних версиях .NET Framework снижают риск успешного перепроектирования DecryptionKey значения злоумышленником. Старые методы шифрования доступны для обеспечения обратной совместимости.

Все серверы в веб-ферме должны иметь CompatibilityMode свойство с одинаковым значением. Если сервер, считывающий билет проверки подлинности форм, имеет другой параметр, отличный CompatibilityMode от сервера, создавшего билет, билет не будет распознан.

Для свойства можно указать CompatibilityMode следующие значения:

  • Framework20SP1. Это значение указывает, что ASP.NET использует методы шифрования, доступные в версиях ASP.NET более 2.0 с пакетом обновления 2 (SP2). Используйте это значение для всех серверов в веб-ферме, если любой сервер имеет версию .NET Framework ранее 2.0 с пакетом обновления 2 (SP2). Это значение по умолчанию, если файл приложения Web.config не имеет targetFramework атрибут элемента, равный httpRuntime "4.5".

  • Framework20SP2. Это значение указывает, что ASP.NET использует обновленные методы шифрования, представленные в .NET Framework 2.0 с пакетом обновления 2 (SP2). Используйте это значение для всех серверов в веб-ферме, если все серверы имеют .NET Framework 2.0 с пакетом обновления 2 (SP2) или более поздней версии, но хотя бы один не имеет .NET Framework 4.5.

  • Framework45. Усовершенствования шифрования для ASP.NET 4.5 в силе. Это значение по умолчанию, если в файле приложения Web.config есть targetFramework атрибут httpRuntime элемента, равный "4.5".

Если для этого свойства задано Framework45значение, применяются следующие ограничения:

  • DataProtectorType Если свойство имеет значение, ApplicationName свойство также должно иметь значение. Класс DataProtector предписывает указать имя непустого приложения.

  • Атрибут Validation должен быть фактическим алгоритмом проверки (например, MD5, SHA1, HMACSHA256, HMACSHA384, HMACSHA512) или пользовательским алгоритмом, который подклассирует KeyedHashAlgorithm тип. Значения AES и 3DES запрещены.

  • Платформа не будет создавать полезные данные только для подписи. Билеты проверки подлинности форм всегда будут зашифрованы и подписаны независимо от того, как protection атрибут forms элемента задан в файле Web.config. Состояние представления всегда будет зашифровано и подписано, если EnableViewStateMac для данной страницы задано или RequireViewStateEncryption задано значение.

В результате обновления безопасности, описанного в бюллетене майкрософт по безопасности MS10-070, поведение шифрования по умолчанию совпадает с Framework20SP1 параметрами и Framework20SP2 параметрами. Изменение поведения по умолчанию не рекомендуется, но если вы хотите сделать это, см. инструкции по настройке устаревшего режима шифрования в ASP.NET.

Применяется к