Po zastosowaniu aktualizacji zabezpieczeń MS10-070 na serwerach obsługujących witryny internetowe firmy Microsoft ASP.NET wdrożone w farmie sieci Web, niektóre serwery lub aplikacje w farmie sieci Web mogą napotkać jeden lub więcej z następujących symptomów:
- Niepowodzenie odszyfrowania danych
- Wyjątki w procedurach obsługi WebResource lub ScriptResource
- Niepowodzenia uwierzytelniania podczas korzystania z uwierzytelniania formularzy
- Wyjątki "Invalid Viewstate"
- Wyjątki "Nie można zweryfikować danych" podczas próby odszyfrowania danych, takich jak plik cookie uwierzytelniania formularzy
Błąd może objawiać się jako wyjątek aplikacji podczas uzyskiwania dostępu do ASP.NET aplikacji, a informacje podobne do poniższych mogą być również rejestrowane w dzienniku aplikacji.
Wiadomość 1:
System.Web.HttpException: Nie można zweryfikować danych. at System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(Boolean fEncrypt, Byte[] buf, Byte[] modifier, Int32 start, Int32 length, IVType ivType, Boolean useValidationSymAlgo, Boolean signData)
Wiadomość 2:
Typ zdarzenia: Ostrzeżenie
Źródło zdarzenia: ASP.NET 2.0.50727.0
Kategoria zdarzenia: Zdarzenie internetowe
Identyfikator zdarzenia: 1309
Data: Data
Czas: Czas
Użytkownik: B/A
Opis:
Kod zdarzenia: 3005
Komunikat zdarzenia: Wystąpił nieobsługiwany wyjątek.
Informacje o wyjątku:
Typ wyjątku: HttpException
Komunikat o wyjątku: Nie można sprawdzić poprawności danych.
Objawy
Aktualizacja zabezpieczeń uwzględniona w biuletynie MS10-070 zmienia domyślne zachowanie szyfrowania w ASP.NET. Nowym zachowaniem domyślnym po zainstalowaniu aktualizacji zabezpieczeń oprócz szyfrowania jest przeprowadzanie walidacji, nawet jeśli żądane jest tylko szyfrowanie. To zachowanie domyślne zmienia zaszyfrowany ładunek na serwerach, na których ta aktualizacja została zastosowana. Ładunek może zawierać pliki cookie uwierzytelniania stanu widoku i uwierzytelniania formularzy. Jeśli farma sieci Web zawiera tylko niektóre serwery, na których została zastosowana aktualizacja zabezpieczeń, metody szyfrowania i odszyfrowywania tego samego ładunku będą się różnić między różnymi serwerami w farmie sieci Web, co spowoduje powstanie wyjątków. Takie działanie może również wystąpić, jeśli pliki cookie uwierzytelniania formularzy zachowane w systemach przed zastosowaniem aktualizacji zabezpieczeń zostaną zużyte po zastosowaniu aktualizacji zabezpieczeń.
Ponadto metody szyfrowania i odszyfrowywania różnią się w zależności od wersji dodatku Service Pack programu Microsoft .NET Framework 2.0. Dlatego istnienie różnych poziomów dodatku Service Pack dla programu .NET Framework w środowisku farmy sieci Web, w którym zainstalowano aktualizację zabezpieczeń, skutkuje różnymi zaszyfrowanymi ładunkami i podobną przyczyną błędu odszyfrowywania.
Przyczyna
Sprawdź, czy na wszystkich serwerach udostępniających zawartość ASP.NET są spełnione następujące warunki:
- Wszystkie serwery obsługujące witrynę internetową ASP.NET w farmie sieci Web muszą zainstalować aktualizację zabezpieczeń. Jeśli na niektórych serwerach nie ma zainstalowanej aktualizacji zabezpieczeń, należy zastosować tę aktualizację na tych serwerach.
- Jeśli aktualizacja zabezpieczeń MS10-070 dotyczy wszystkich komputerów z farmą sieci Web używającą jakiejś wersji programu .NET Framework 2.0, wszystkie komputery muszą mieć ten sam poziom dodatku Service Pack. Jeśli występują różnice w poziomach dodatków Service Pack na serwerach, należy zaktualizować wszystkie serwery do najnowszego dodatku Service Pack i ponownie zainstalować wszystkie aktualizacje zabezpieczeń. Jeśli na niektórych serwerach farmy sieci Web jest uruchomiony program .NET Framework 2.0 z dodatkiem SP1, a na innych program .NET Framework 2.0 z dodatkiem SP2, wszystkie serwery programu .NET Framework 2.0 z dodatkiem SP1 muszą zostać uaktualnione do wersji .NET Framework 2.0 z dodatkiem SP2, zanim będzie można zastosować aktualizację zabezpieczeń do wszystkich serwerów w farmie sieci Web.
- Upewnij się, że aplikacje nie korzystają z zaszyfrowanych danych, takich jak pliki cookie uwierzytelniania formularzy, które zostały wygenerowane przed zastosowaniem aktualizacji. Wcześniej zaszyfrowane dane muszą zostać odświeżone po zastosowaniu aktualizacji zabezpieczeń.
Aby uzyskać więcej informacji na temat wykrywania wersji programu .NET Framework i instalowania aktualizacji zabezpieczeń na serwerach, zobacz sekcję "Materiały referencyjne".
Rozwiązanie
Aby uzyskać więcej informacji o stanie widoku ASP.NET, zapoznaj się z następującym artykułem:
ASP.NET Wyświetl omówienie stanu Aby uzyskać więcej informacji o uwierzytelnianiu formularzy ASP.NET, zapoznaj się z następującym artykułem:
Omówienie uwierzytelniania za pomocą programu ASP.NET Forms Aby uzyskać więcej informacji dotyczących biletów i plików cookie uwierzytelniania ASP.NET Forms, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:
910443 Opis biletu uwierzytelniania i pliku cookie formularzy Aby uzyskać więcej informacji na temat programu obsługi ASP.NET zasobów sieci Web, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:
910442 Praca z zasobami sieci Web w ASP.NET 2.0