关于viewstate何时以及如何在asp.net 3.5中加密,我有几个问题.例如,如果我在web.config中有一个machinekey条目,如:decryptionKey ="AutoGenerate,IsolateApps"validation ="AES"decryption ="Auto"/>
此时是否加密了viewstate?或者我是否还需要在页面部分中指定viewStateEncryptionMode?
此外,是否可以加密formauthentication cookie,但不能同时加密viewstate?
谢谢你的帮助.
页面上的控件可以请求将加密用于ViewState,但即使是此请求也可以被页面设置覆盖.
ViewStateEncryptionMode枚举有三个值:Auto,Always和Never.默认值为"自动".
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