Autor Beitrag
ThoMa
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 46
Erhaltene Danke: 3



BeitragVerfasst: Mo 10.01.11 16:44 
Hallo,

folgende Situation:

Einstiegsseite Default.aspx beinhaltet als iFrame die Seite ListBoxSite.aspx. Als Formularmethode ist get mitgegeben und als Action der Aufruf von Action.aspx. Die Seite beinhaltet nur eine asp:ListBox mit diversen Items. AutoPostBack der ListBox ist auf 'true'.

Die Webanwendung kommt unter dem Cassini zur Ausführung auf Basis .NET 2.0. Wähle ich nun auf der Default.aspx im iFrame einen Eintrag aus der ListBox aus, erhalte ich eine Fehlermeldung:

Fehler bei der Validierung von ViewState-MAC. Wenn diese Anwendung von einer Webfarm oder einem Cluster gehostet wird, stellen Sie sicher, dass die <machineKey>-Konfiguration den gleichen validationKey und Validierungsalgorithmus angibt. AutoGenerate kann in einem Cluster nicht verwendet werden.

Wenn ich in der Action.aspx explizit in der Pages-Direktive EnableViewStateMac="false" setze, erscheint der Fehler nicht.

Wenn ich nun aber die ListBoxItem.aspx direkt aufrufe und sie nicht innerhalb eines iFrames laden lasse, erhalte ich die gleiche Fehlermeldung. Das Problem besteht also scheinbar in der Weiterleitung über das Formular durch die Get-Methode.

Meine Fragestellung nun: Mal angenommen ich könnte die Methodik (get auf Formular) nicht ohne Weiteres umstellen und möchte auch die Validierung der ViewStateMac nicht explizit aushebeln, welche Möglichkeiten hätte ich? Den ViewState in der Session speichern und explizit wiederherstellen?

Grüße
Thorsten