MachineKeySection.CompatibilityMode Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
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 matargetFramework
atrybuthttpRuntime
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 matargetFramework
atrybuthttpRuntime
elementu ustawiony na "4.5".
Po ustawieniu tej właściwości na Framework45
wartość 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
atrybutforms
elementu jest ustawiony w pliku Web.config. Stan widoku zawsze będzie szyfrowany i podpisany, jeśliEnableViewStateMac
jest ustawiony dla danej strony lubRequireViewStateEncryption
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.