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 dodatku Service Pack 1 programu .NET Framework w wersji 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

Wartość właściwości

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

Atrybuty

Uwagi

Uaktualnione metody szyfrowania w nowszych wersjach programu .NET Framework zmniejszają ryzyko pomyślnego odwrócenia wartości przez osobę atakującą DecryptionKey . 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 z dodatkiem 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 dla ASP.NET 4.5 są obowiązujące. 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 podanie niepustej nazwy aplikacji.

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

  • Struktura nie będzie tworzyć ł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 zawsze będzie szyfrowany i podpisany, jeśli EnableViewStateMac jest ustawiony dla danej strony lub RequireViewStateEncryption dla danej strony.

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

Dotyczy