Verschlüsselte Inhalte in ASP.NET werden nicht entschlüsselt oder führen zu Fehlern für eine Website, die persistente Formularauthentifizierungscookies verwendet oder in einer Webfarm bereitgestellt wird.

Nachdem Sie das Sicherheitsupdate MS10-070 auf Server angewendet haben, die Microsoft ASP.NET Websites bedienen, die in einer Webfarm bereitgestellt werden, treten bei einigen Servern oder Anwendungen in der Webfarm möglicherweise eines 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ültige Viewstate"-Ausnahmen
  • Ausnahmen vom Typ "Daten können nicht überprüft werden" beim Versuch, Daten wie das Formularauthentifizierungscookies zu entschlüsseln

Der Fehler kann sich beim Zugriff auf die ASP.NET Anwendung als Anwendungs exception manifestieren, und Informationen, die den folgenden ähneln, können auch im Anwendungsprotokoll protokolliert werden. 

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
Ereignis-ID: 1309
Datum: Datum
Zeit: Zeit
Benutzer: N/A
Beschreibung:
Ereigniscode: 3005
Ereignismeldung: Es ist eine Ausnahme aufgetreten, die nicht behandelt wurde.
Ausnahmeinformationen:
    Ausnahmetyp: HttpException
    Ausnahmemeldung: Daten können nicht überprüft werden.

Symptome

Das Sicherheitsupdate, das das Bulletin MS10-070 adresst, ändert das Standardverhalten der Verschlüsselung in ASP.NET. Das neue Standardverhalten nach der Installation des Sicherheitsupdates besteht darin, zusätzlich zur Verschlüsselung eine Überprüfung durchzuführen, auch wenn nur die Verschlüsselung angefordert wird. Dieses Standardverhalten ändert die verschlüsselte Nutzlast auf Servern, auf denen dieses Update angewendet wird. Die Nutzlast kann Ansichtszustands- und Formularauthentifizierungscookies enthalten. Wenn eine Webfarm nur über einige Server verfügt, auf die das Sicherheitsupdate angewendet wird, gibt es einen Unterschied bei den Verschlüsselungs- und Entschlüsselungsmethoden für dieselbe Nutzlast auf verschiedenen Servern in der Webfarm, und dieser Unterschied im Verhalten führt zu Ausnahmen. Dieses Verhalten kann auch auftreten, wenn Formularauthentifizierungscookies, die vor dem Anwenden des Sicherheitsupdates auf Systemen beibehalten werden, nach dem Anwenden des Sicherheitsupdates verwendet werden.

Außerdem unterscheiden sich die Verschlüsselungs- und Entschlüsselungsmethoden für verschiedene Service Pack-Versionen von Microsoft .NET Framework 2.0. Unterschiedliche Service Pack-Ebenen für die .NET Framework in einer Webfarmumgebung, in der das Sicherheitsupdate installiert ist, führt daher zu unterschiedlichen verschlüsselten Nutzlasten und einem ähnlichen Entschlüsselungsfehler.

Ursache

Vergewissern Sie sich, dass die folgenden Bedingungen auf allen Servern erfüllt sind, die den ASP.NET Inhalt bereitstellen:

  • Alle Server, die eine ASP.NET Website in der Webfarm bedienen, müssen das Sicherheitsupdate installieren. Wenn auf einigen Servern das Sicherheitsupdate nicht installiert ist, müssen Sie das Update auf diese Server anwenden.
  • Alle Computer, auf denen eine Version der .NET Framework 2.0 in der Webfarm ausgeführt wird, müssen sich auf der gleichen Service Pack-Ebene befinden, wenn das Sicherheitsupdate MS10-070 auf alle Systeme angewendet wird. Wenn es einen Unterschied in den Service Pack-Ebenen auf den Servern gibt, müssen Sie alle Server auf das neueste Service Pack aktualisieren und alle Sicherheitsupdates erneut anwenden. Wenn auf einigen Servern in der Webfarm die .NET Framework 2.0 SP1 ausgeführt wird und auf anderen Servern die .NET Framework 2.0 SP2 ausgeführt wird, müssen daher alle .NET Framework 2.0 SP1-Server auf den .NET Framework 2.0 SP2 aktualisiert werden, bevor Sie das Sicherheitsupdate auf alle Server in der Webfarm anwenden.
  • Stellen Sie sicher, dass Anwendungen keine verschlüsselten Daten verarbeiten, z. B. Formularauthentifizierungscookies, die vor der Anwendung des Updates generiert wurden. Zuvor verschlüsselte Daten müssen aktualisiert werden, nachdem das Sicherheitsupdate angewendet wurde.

Weitere Informationen zum Erkennen der .NET Framework Versionen und zur Installation von Sicherheitsupdates auf Ihren Servern finden Sie im Abschnitt "Verweise".

Lösung

Weitere Informationen zum ASP.NET Ansichtsstatus finden Sie im folgenden Artikel:

ASP.NET Übersicht über den Ansichtszustand Weitere Informationen zur ASP.NET Formularauthentifizierung finden Sie im folgenden Artikel:

Übersicht über die ASP.NET-Formularauthentifizierung Weitere Informationen zu ASP.NET Tickets und Cookies für die Formularauthentifizierung finden Sie im folgenden Artikel der Microsoft Knowledge Base:

910443 Grundlegendes zum Formularauthentifizierungsticket und -cookie Klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen. Weitere Informationen zu ASP.NET Webressourcenhandler:

910442 Arbeiten mit Webressourcen in ASP.NET 2.0

Referenzmaterial