什么是ViewState? 它是否被编码过? 是否被加密过?谁会使用ViewState?

ViewState是用来在PostBack之间保存信息的工具。这些信息被保存在页面的一个hidden元素中。默认情况下ViewState采用了Base64来编码。所以安全性上存在一定问题。要保护viewstate有两种方式: 一种是防篡改,一种是加密. 一说到防篡改,我们就想起了使用散列代码. 没错, 我们可以在页面顶部加入如下代码:Page EnableViewStateMAC=true。默认情况下asp.net是通过SHA1算法而不是md5算法来生成散列,不过这个可以在machine.config里面配置machineKey validation="MD5"即可。viewstate加密, 只要在machine.config里设置一下machineKey validation="3DES"即可实现用des加密viewstate了。

像是控件在两次回发之间就需要ViewState来保存状态值,如文本框中的值等。

posted @ 2011-02-15 11:30  bobzhao  阅读(537)  评论(0编辑  收藏  举报