2009-07-23 7 views
2

In ASP.NET ist ViewState normalerweise vor Manipulationen auf dem Client mit einer Signatur geschützt, die vom Maschinengeheimnis auf dem Server generiert wird. Aber dieser Schutz kann leicht mit ausgeschaltet werden:Wie überprüft man, ob EnableViewStateMac zur Laufzeit gesetzt ist?

<%@ Page ... EnableViewStateMac="false" %> 

Ich schreibe ein ASP.NET-Steuerelement, dass kann Speicher sicherheitssensible Informationen (nicht geheim ... aber es muss nicht manipuliert werden), abhängig davon, ob EnableViewStateMac wahr ist.

Wie kann ich testen, ob es zur Laufzeit ein- oder ausgeschaltet ist?

Antwort

3

Sie sollten nur in der Lage sein

Page.EnableViewStateMac 

aus dem Code zu verweisen.

http://msdn.microsoft.com/en-us/library/system.web.ui.page.enableviewstatemac.aspx

+0

Wow. Dies zeigt, dass, wenn etwas in Intellisense nicht existiert, einige Entwickler nicht glauben, dass es überhaupt existiert. Es ist ein perfekter Ort für diese Eigenschaft zu gehen, und dennoch hat diese Eigenschaft '[EditorBrowsable (EditorBrowsableState.Never)] 'gesetzt, so dass Intellisense es nicht verfügbar macht. Wie auch immer, danke! –

1

Sie können mit this.Page überprüfen. EnableViewStateMac

Hinweis aus der obigen link

Sie diese Eigenschaft im Code nicht gesetzt. Legen Sie das EnableViewStateMac-Attribut mithilfe der @ Page-Direktive in der ASPX-Datei fest. Wenn die Seite angefordert wird, legt die dynamisch generierte Klasse die Eigenschaft fest.


Ein Ansichtszustand MAC ist eine verschlüsselte Version der verborgenen Variable, die eine Ansicht staatliche Seite wird beibehalten, wenn die Seite an den Browser gesendet wird. Wenn diese Eigenschaft auf "true" festgelegt ist, wird der Status der verschlüsselten Ansicht überprüft, um zu überprüfen, ob auf dem Client Änderungen vorgenommen wurden.

Verwandte Themen