10

asp.net 3.5 でビューステートがいつ、どのように暗号化されるかについていくつか質問があります。たとえば、web.config に次のような machinekey エントリがあるとします。

この時点でビューステートは暗号化されていますか? または、ページ セクションでも viewStateEncryptionMode を指定する必要がありますか?

また、フォーム認証 Cookie を暗号化することはできますが、同時にビューステートを暗号化することはできませんか?

助けてくれてありがとう。

4

1 に答える 1

13

ページ上のコントロールは、ViewState に暗号化を使用するように要求できますが、この要求でさえページ設定によってオーバーライドできます。

ViewStateEncryptionMode 列挙には、Auto、Always、Never の 3 つの値があります。デフォルト値は自動です。

ViewStateEncryptionMode.Auto

このモードでは、ASP.NET は、ページ上のいずれかのコントロールが要求した場合に、ページの ViewState を暗号化します。これは、それを要求するコントロールの ViewState だけでなく、すべての ViewState が暗号化されることを意味することに注意してください。暗号化に関連するパフォーマンス コストの大部分は、オーバーヘッドにあります。したがって、複数のコントロールが要求を行う場合、ViewState 全体を暗号化する方が、個別の暗号化操作を行うよりも高速です。

ViewStateEncryptionMode.Never

ご想像のとおり、このモードでは、アプリケーションが暗号化用に設定されていて、ページ上のコントロールが要求した場合でも、ASP.NET は ViewState を暗号化しません。ページに含まれるデータを暗号化する必要がないことがわかっている場合は、モードを [なし] に設定しても安全です。ただし、現時点では、コントロールに関するドキュメントで ViewState に保存されている内容が開示されることはほとんどないため、機密データが公開される可能性がある場合は注意が必要です。

ViewStateEncryptionMode.Always

このモードでは、ASP.NET は、ページ内のコントロールが暗号化を要求するのを待ちません。ViewState は常に暗号化されます。機密データを扱う場合は、暗号化を利用することをお勧めします。

ソース: http://msdn.microsoft.com/en-us/library/aa479501.aspx

于 2008-12-04T22:12:18.770 に答える