2008-12-04 13 views
10

Ich habe ein paar Fragen darüber, wann und wie viewstate in asp.net 3.5 verschlüsselt ist. wenn ich einen Machinekey Eintrag in meinem web.config wie Zum Beispiel: decryptionKey = "Autogenerate, IsolateApps" Validierung = "AES" Entschlüsselung = "Auto" />asp.net viewstate Verschlüsselung

Ansichtszustand an dieser Stelle verschlüsselt ist ? Oder muss ich den ViewStateEncryptionMode auch im Seitenbereich angeben?

Ist es auch möglich, einen formsauthentication cookie zu verschlüsseln, aber viewstate nicht gleichzeitig zu verschlüsseln?

Danke für jede Hilfe.

Antwort

12

Die Steuerelemente auf der Seite können anfordern, dass die Verschlüsselung für ViewState verwendet wird, aber selbst diese Anforderung kann durch die Seiteneinstellung überschrieben werden.

Die ViewStateEncryptionMode-Enumeration hat drei Werte: Auto, Immer und Nie. Der Standardwert ist Auto.

ViewStateEncryptionMode.Auto

In diesem Modus wird ASP.NET Viewstate für eine Seite verschlüsseln, wenn eine Kontrolle auf der Seite fordert er. Beachten Sie, dass dies bedeutet, dass der gesamte ViewState verschlüsselt ist, nicht nur der ViewState für das Steuerelement, das es anfordert. Ein Großteil der mit der Verschlüsselung verbundenen Leistungskosten liegt im Overhead. Das Verschlüsseln des gesamten ViewState ist also schneller als das Ausführen separater Verschlüsselungsoperationen, wenn mehr als ein Steuerelement die Anforderung ausführt.

ViewStateEncryptionMode.Never

Wie man erwarten würde, in diesem Modus ASP.NET die Viewstate nicht verschlüsseln, auch wenn die Anwendung für die Verschlüsselung und Steuerelemente auf der Seite gesetzt hat es angefordert. Wenn Sie wissen, dass keine an der Seite beteiligten Daten verschlüsselt werden müssen, können Sie den Modus auf "Nie" einstellen. An dieser Stelle ist es jedoch selten, dass in der Dokumentation zu einem Steuerelement angegeben wird, was in ViewState gespeichert wird. Daher sollten Sie vorsichtig sein, wenn die Möglichkeit besteht, dass vertrauliche Daten verfügbar gemacht werden.

ViewStateEncryptionMode.Always

In diesem Modus wird ASP.NET nicht für eine Kontrolle auf der Seite warten Verschlüsselung anzufordern. ViewState ist immer verschlüsselt. Bei der Arbeit mit vertraulichen Daten empfiehlt es sich, die Verschlüsselung zu verwenden.

Quelle: http://msdn.microsoft.com/en-us/library/aa479501.aspx