Problembeschreibung
Nach der Installation von Sicherheitsupdate MS10-070 auf Servern, die Microsoft ASP.NET-Websites in einer Webfarm bereitstellen, treten bei einigen Servern oder Anwendungen in der Webfarm möglicherweise ein oder mehrere der folgenden Symptome auf:
-
Fehler beim Entschlüsseln von Daten
-
Ausnahmen in den WebResource- oder ScriptResource-Handlern
-
Authentifizierungsfehler bei Verwendung der Formularauthentifizierung
-
"Ungültiger ViewState"-Ausnahmen
-
"Daten können nicht überprüft werden"-Ausnahmen beim Versuch, Daten wie Cookies der Formularauthentifizierung zu entschlüsseln
Der Fehler kann sich als Anwendungsausnahme beim Zugriff auf die ASP.NET-Anwendung manifestieren, und im Anwendungsprotokoll können Informationen erfasst werden, die in etwa folgendermaßen aussehen.
Meldung 1:System.Web.HttpException : Daten können nicht überprüft werden. at System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(Boolean fEncrypt, Byte[] buf, Byte[] modifier, Int32 start, Int32 length, IVType ivType, Boolean useValidationSymAlgo, Boolean signData)
Meldung 2:Ereignistyp: Warnung Ereignisquelle: ASP.NET 2.0.50727.0 Ereigniskategorie: Webereignis Ereigniskennung: 1309 Datum: Datum Uhrzeit: Uhrzeit Benutzer: - Beschreibung: Ereigniscode: 3005 Ereignismeldung: Es ist eine unbehandelte Ausnahme aufgetreten. Ausnahmeinformationen: Ausnahmetyp: HttpException Ausnahmemeldung: Daten können nicht überprüft werden.
Ursache
Das Sicherheitsupdate, das Bulletin MS10-070 adressiert, ändert das Standardverhalten der Verschlüsselung in ASP.NET. Das neue Standardverhalten nach Installation des Sicherheitsupdates sieht so aus, dass neben der Verschlüsselung eine Validierung erfolgt, selbst wenn nur die Verschlüsselung angefordert wird. Durch dieses Standardverhalten ändert sich die verschlüsselte Nutzlast auf Servern, auf denen dieses Update installiert ist. Die Nutzlast kann den Ansichtszustand und Cookies der Formularauthentifizierung umfassen. Wenn das Sicherheitsupdate in einer Webfarm nur auf einigen Servern installiert ist, unterscheiden sich Verschlüsselungs- und Entschlüsselungsmethoden für dieselbe Nutzlast auf den verschiedenen Servern in der Webfarm, und diese Unterschiede im Verhalten verursachen Ausnahmen. Das Verhalten kann auch auftreten, wenn vor der Installation des Sicherheitsupdates auf Systemen vorhandene permanente Cookies der Formularauthentifizierung nach der Installation des Sicherheitsupdates verarbeitet werden. Außerdem unterscheiden sich Verschlüsselungs- und Entschlüsselungsmethoden für verschiedene Service Pack-Versionen von Microsoft .NET Framework 2.0. Wenn daher unterschiedliche Service Pack-Nummern von .NET Framework in einer Webfarmumgebung, in der das Sicherheitsupdate installiert wurde, vorliegen, hat dies unterschiedliche verschlüsselte Nutzlasten und ähnliche Entschlüsselungsfehler zur Folge.
Lösung
Überprüfen Sie, ob auf allen Servern, die ASP.NET-Inhalte bereitstellen, die folgenden Bedingungen vorliegen:
-
Auf allen Servern, die eine ASP.NET-Website in der Webfarm bereitstellen, muss das Sicherheitsupdate installiert sein. Wenn das Sicherheitsupdate auf einigen Servern nicht installiert ist, müssen Sie es auf diesen Servern installieren.
-
Alle Computer, auf denen eine Version von .NET Framework 2.0 in der Webfarm ausgeführt wird, müssen über dieselbe Service Pack-Nummer verfügen, wenn das Sicherheitsupdate MS10-070 auf allen Systemen installiert wird. Wenn unterschiedliche Service Pack-Nummern auf den Servern vorliegen, müssen Sie alle Server auf das neueste Service Pack aktualisieren und alle Sicherheitsupdates erneut installieren. Wenn also auf einigen Servern in der Webfarm .NET Framework 2.0 SP1 und auf anderen Servern .NET Framework 2.0 SP2 ausgeführt wird, müssen alle Server mit .NET Framework 2.0 SP1 auf .NET Framework 2.0 SP2 aktualisiert werden, bevor Sie das Sicherheitsupdate auf allen Servern in der Webfarm installieren.
-
Stellen Sie sicher, dass Anwendungen keine verschlüsselten Daten verarbeiten, wie z. B. die Cookies der Formularauthentifizierung, die vor der Installation des Updates generiert wurden. Zuvor verschlüsselte Daten müssen nach der Installation des Sicherheitsupdates aktualisiert werden.
Weitere Informationen dazu, wie Sie die .NET Framework-Versionen ermitteln, und zur Installation von Sicherheitsupdates auf Servern finden Sie im Abschnitt "Informationsquellen".
Informationsquellen
Weitere Informationen zum ASP.NET-Ansichtszustand finden Sie im folgenden Artikel:
Übersicht über den ASP.NET-AnsichtszustandWeitere Informationen über ASP.NET-Formularauthentifizierung finden Sie im folgenden Artikel:
Übersicht über die ASP.NET-FormularauthentifizierungWeitere Informationen über ASP.NET Formularauthentifizierungstickets und -cookies finden Sie im folgenden Artikel der Microsoft Knowledge Base:
910443 Grundlegendes zum Formularauthentifizierungsticket und -cookie Weitere Informationen zum ASP.NET-Webressourcenhandler finden Sie im folgenden Artikel der Microsoft Knowledge Base:
910442 Arbeiten mit Webressourcen in ASP.NET 2.0