MachineKeySection.CompatibilityMode Свойство

Определение

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

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

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

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.

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