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


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

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

Значение, указывающее, используются ли методы шифрования, введенные после выпуска .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). Это значение используется по умолчанию, если в файле targetFramework Web.config приложения атрибут 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.

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