Udostępnij za pośrednictwem


MachineKeySection.CompatibilityMode Właściwość

Definicja

Pobiera lub ustawia wartość określającą, czy są używane uaktualnione metody szyfrowania dla stanu wyświetlania wprowadzone po wydaniu programu .NET Framework w wersji 2.0 z dodatkiem Service Pack 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

Wartość właściwości

Wartość wskazująca, czy metody szyfrowania wprowadzone po wydaniu programu .NET Framework 2.0 z dodatkiem SP1 są używane.

Atrybuty

Uwagi

Uaktualnione metody szyfrowania w nowszych wersjach programu .NET Framework zmniejszają ryzyko, że osoba atakująca może pomyślnie odwrócić DecryptionKey wartość. Starsze metody szyfrowania są dostępne w celu zachowania zgodności z poprzednimi wersjami.

Wszystkie serwery w farmie sieci Web powinny mieć CompatibilityMode właściwość ustawioną na tę samą wartość. Jeśli serwer odczytujący bilet uwierzytelniania formularzy ma inne CompatibilityMode ustawienie niż serwer, który utworzył bilet, bilet nie zostanie rozpoznany.

Dla właściwości można określić CompatibilityMode następujące wartości:

  • Framework20SP1. Ta wartość określa, że ASP.NET używa metod szyfrowania, które były dostępne w wersjach ASP.NET starszych niż 2.0 SP2. Użyj tej wartości dla wszystkich serwerów w farmie sieci Web, jeśli jakikolwiek serwer ma wersję programu .NET Framework wcześniej niż 2.0 z dodatkiem SP2. Jest to wartość domyślna, chyba że plik Web.config aplikacji ma targetFramework atrybut httpRuntime elementu ustawiony na "4.5".

  • Framework20SP2. Ta wartość określa, że ASP.NET używa uaktualnionych metod szyfrowania, które zostały wprowadzone w programie .NET Framework 2.0 SP2. Użyj tej wartości dla wszystkich serwerów w farmie sieci Web, jeśli wszystkie serwery mają program .NET Framework 2.0 z dodatkiem SP2 lub nowszym, ale co najmniej jeden z nich nie ma programu .NET Framework 4.5.

  • Framework45. Ulepszenia kryptograficzne ASP.NET 4.5 są w mocy. Jest to wartość domyślna, jeśli plik Web.config aplikacji ma targetFramework atrybut httpRuntime elementu ustawiony na "4.5".

Po ustawieniu tej właściwości na Framework45wartość obowiązują następujące ograniczenia:

  • DataProtectorType Jeśli właściwość ma wartość, ApplicationName właściwość musi również mieć wartość. Klasa DataProtector nakazuje, aby podano niepustą nazwę aplikacji.

  • Atrybut Validation musi być rzeczywistym algorytmem sprawdzania poprawności (na przykład MD5, SHA1, HMACSHA256, HMACSHA384, HMACSHA512) lub niestandardowym algorytmem, który klasy klasyje KeyedHashAlgorithm typ. Wartości AES i 3DES są zabronione.

  • Struktura nie będzie generować ładunków tylko z podpisem. Bilety uwierzytelniania formularzy będą zawsze szyfrowane i podpisane, niezależnie od tego, jak protection atrybut forms elementu jest ustawiony w pliku Web.config. Stan widoku będzie zawsze szyfrowany i podpisany, jeśli EnableViewStateMac zostanie ustawiona dla danej strony lub RequireViewStateEncryption .

W wyniku aktualizacji zabezpieczeń opisanej w biuletynie zabezpieczeń firmy Microsoft MS10-070 domyślne zachowanie szyfrowania jest takie samo w przypadku Framework20SP1 ustawień i Framework20SP2 . Zmiana zachowania domyślnego nie jest zalecana, ale jeśli chcesz to zrobić, zobacz Jak skonfigurować starszy tryb szyfrowania w ASP.NET.

Dotyczy