MachineKeySection.CompatibilityMode Właściwość

Definicja

Pobiera lub ustawia wartość określającą, czy są używane uaktualnione metody szyfrowania dla stanu widoku wprowadzone po .NET Framework wersji 2.0 dodatku 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

MachineKeyCompatibilityMode

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

Atrybuty

Uwagi

Uaktualnione metody szyfrowania w późniejszych wersjach .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 z dodatkiem SP2. Użyj tej wartości dla wszystkich serwerów w farmie sieci Web, jeśli jakikolwiek serwer ma wersję .NET Framework starszej 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 .NET Framework 2.0 SP2. Użyj tej wartości dla wszystkich serwerów w farmie sieci Web, jeśli wszystkie serwery mają .NET Framework 2.0 z dodatkiem SP2 lub nowszym, ale co najmniej jeden nie ma .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