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 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 matargetFrameworkatrybuthttpRuntimeelementu 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 matargetFrameworkatrybuthttpRuntimeelementu 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
protectionatrybutformselementu jest ustawiony w pliku Web.config. Stan widoku będzie zawsze szyfrowany i podpisany, jeśliEnableViewStateMaczostanie ustawiona dla danej strony lubRequireViewStateEncryption.
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.