Was ist der Ansichtszustand?
Beim Ansichtszustand handelt es sich um Informationen, die zwischen WebForms-Seiten einer ASP.NET-Anwendungen ausgetauscht werden. Das HTML-Markup für das Feld __VIEWSTATE sieht etwa wie folgt aus:
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="..." />
Ein Beispiel für ein Element, das im Feld __VIEWSTATE gespeichert werden könnte, ist der Text eines Button-Steuerelements. Wenn der Benutzer auf die Schaltfläche klickt, kann der Button_Click-Ereignishandler den Text der Button-Schaltfläche aus dem Feld __VIEWSTATE extrahieren. Eine ausführlichere Übersicht über den ASP.NET-Ansichtszustand finden Sie im Thema Übersicht über den ASP.NET-Ansichtszustand auf der Microsoft Developer Network (MSDN)-Website.
Weil das Feld __VIEWSTATE wichtige Informationen enthält, die beim Postback zum Rekonstruieren der Seite verwendet werden, stellen Sie sicher, dass Angreifer dieses Feld nicht manipulieren können. Wenn es einem Angreifer gelänge, eine bösartige __VIEWSTATE-Nutzlast zu senden, dann könnte der Angreifer die Anwendung potenziell dazu bringen, eine Aktion auszuführen, die ansonsten nicht ausgeführt worden wäre.
Um diese Art von Manipulationsangriffen zu vermeiden, wird das Feld __VIEWSTATE durch einen Nachrichtenauthentifizierungscode (MAC) geschützt. ASP.NET überprüft den MAC, der zusammen mit der __VIEWSTATE-Nutzlast übermittelt wird, wenn ein Postback erfolgt. Der Schlüssel wird verwendet, um den MAC entsprechend der Angabe im