Applies To.NET Framework 3.5 Service Pack 1

Symptomy

Po zastosowaniu aktualizacji zabezpieczeń MS10-070 na serwerach udostępniających witryny sieci Web programu Microsoft ASP.NET wdrożone w kolektywie serwerów sieci Web w przypadku niektórych serwerów lub aplikacji w tym kolektywie mogą wystąpić następujące symptomy:

  • Nie można odszyfrować danych.

  • Wyjątki w programach obsługi zasobów WebResource lub ScriptResource.

  • Błędy uwierzytelniania w przypadku stosowania uwierzytelniania przy użyciu formularzy.

  • Wyjątki związane z nieprawidłowym stanem widoku.

  • Wyjątki „Nie można przeprowadzić walidacji danych” podczas prób odszyfrowania danych, na przykład pliku cookie uwierzytelniania przy użyciu formularzy.

Niepowodzenie może mieć postać wyjątku aplikacji w trakcie uzyskiwania dostępu do aplikacji programu ASP.NET. Ponadto w dzienniku aplikacji mogą zostać zarejestrowane informacje podobne do następujących.Komunikat 1:

System.Web.HttpException: Nie można przeprowadzić walidacji danych w System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(Boolean fEncrypt, Byte[] buf, Byte[] modifier, Int32 start, Int32 length, IVType ivType, Boolean useValidationSymAlgo, Boolean signData) Komunikat 2:

Typ zdarzenia: OstrzeżenieŹródło zdarzenia: ASP.NET 2.0.50727.0Kategoria zdarzenia: Zdarzenie sieci Web Identyfikator zdarzenia: 1309Data: DataGodzina: GodzinaUżytkownik: BrakOpis: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 przeprowadzić walidacji danych.

Przyczyna

Aktualizacja zabezpieczeń omówiona w biuletynie MS10-070 zmienia domyślne działanie szyfrowania w programie ASP.NET. Po zainstalowaniu tej aktualizacji zabezpieczeń nowe domyślne działanie jest następujące: nawet jeśli zażądano tylko zaszyfrowania, wykonywana jest również walidacja. To domyślne działanie powoduje zmianę zaszyfrowanego ładunku na serwerach, na których zastosowano tę aktualizację. Ładunek może obejmować pliki cookie uwierzytelniania przy użyciu formularzy i stan widoku. Jeśli tę aktualizację zabezpieczeń zastosowano tylko na niektórych serwerach w kolektywie serwerów sieci Web, dla tego samego ładunku na poszczególnych serwerach w kolektywie występują różnice w metodach szyfrowania i odszyfrowywania. Te różnice w działaniu skutkują wyjątkami. To samo działanie może występować po zastosowaniu tej aktualizacji zabezpieczeń w przypadku używania plików cookie uwierzytelniania przy użyciu formularzy, które utrwalono w systemach przed jej zastosowaniem.Ponadto metody szyfrowania i odszyfrowywania różnią się w przypadku poszczególnych wersji dodatku Service Pack dla programu Microsoft .NET Framework 2.0. Z tego powodu używanie różnych wersji dodatku Service Pack dla programu .NET Framework w środowisku kolektywu serwerów sieci Web, w którym zainstalowano tę aktualizację zabezpieczeń, skutkuje różnymi zaszyfrowanymi ładunkami i podobnym niepowodzeniem odszyfrowywania.

Rozwiązanie

Należy sprawdzić, czy wszystkie serwery udostępniające zawartość ASP.NET, spełniają te warunki:

  • Wszystkie serwery udostępniające witrynę sieci Web ASP.NET w kolektywie serwerów sieci Web muszą mieć zainstalowaną tę aktualizację zabezpieczeń. Jeśli niektóre serwery nie mają zainstalowanej tej aktualizacji zabezpieczeń, należy ją na nich zastosować.

  • Na wszystkich komputerach w kolektywie serwerów sieci Web, na których działa dowolna wersja programu .NET Framework 2.0, musi być używany ten sam dodatek Service Pack (jeśli aktualizację zabezpieczeń MS10-070 zastosowano do wszystkich tych systemów). Jeśli na serwerach są używane różne wersje dodatku Service Pack, należy zaktualizować je wszystkie do najnowszej wersji dodatku Service Pack i ponownie zastosować wszystkie aktualizacje zabezpieczeń. Dlatego jeśli na niektórych serwerach w kolektywie serwerów sieci Web działa program .NET Framework 2.0 z dodatkiem SP1, a na innych program .NET Framework 2.0 z dodatkiem SP2, przed zastosowaniem tej aktualizacji zabezpieczeń na wszystkich serwerach w kolektywie należy uaktualnić wszystkie serwery z programem .NET Framework 2.0 z dodatkiem SP1 do programu .NET Framework 2.0 z dodatkiem SP2.

  • Należy się upewnić, że aplikacje nie używają zaszyfrowanych danych wygenerowanych przed zastosowaniem aktualizacji, takich jak pliki cookie uwierzytelniania przy użyciu formularzy. Po zastosowaniu tej aktualizacji zabezpieczeń dane zaszyfrowane wcześniej należy odświeżyć.

Więcej informacji o wykrywaniu wersji programu .NET Framework oraz instalowaniu aktualizacji zabezpieczeń na serwerach można znaleźć w sekcji „Informacje”.

Materiały referencyjne

Więcej informacji o stanie widoku programu ASP.NET można znaleźć w następującym artykule:

Omówienie stanu widoku programu ASP.NETWięcej informacji o uwierzytelnianiu przy użyciu formularzy programu ASP.NET można znaleźć w następującym artykule:

Omówienie uwierzytelniania przy użyciu formularzy programu ASP.NETAby uzyskać więcej informacji o plikach cookie i biletach uwierzytelniania przy użyciu formularzy programu ASP.NET, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

910443 Opis pliku cookie i biletu uwierzytelniania przy użyciu formularzy (strona może być w języku angielskim) Aby uzyskać więcej informacji o programie obsługi zasobu sieci Web programu ASP.NET, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

910442 Praca z zasobami sieci Web w programie ASP.NET 2.0 (strona może być w języku angielskim)

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.