浅谈ViewState
来源:互联网 发布:迅雷赚钱宝pro 知乎 编辑:程序博客网 时间:2024/05/17 04:13
ViewState相当于页面的一个隐藏文本框控件,所有ViewState都是存储在一个隐藏域,不因为页面的刷新而数据丢失,数据是保存在页面里的,这样可以减少服务器的负担(session保存的数据则是储存在服务器的内存中的,可以跨页面传递,但会增加服务器的负担),可以总结说,ViewState是属于客户端,session属于服务器端。当然你可能说在页面的数据不是可以通过查看源文件而得知, 是的,用户可以很容易的通过查看源码来看到这个经过base64编码的值.然后再经过转换就可以获取你存储其中的对象和变量值.base64编码的值.然后再经过转换就可以获取你存储其中的对象和变量值。所以对于ViewState的安全性问题,asp.net还给我们提供了更多的选择.一般如果要保护ViewState有两种方式: 一种是防篡改,一种是加密.对于防篡改, 我们可以在页面顶部加入如下代码:Page EnableViewStateMAC=true,这样asp.net就会自动的在ViewState中追加一个散列码,在页面回传时,服务器根据回传的ViewState生成一个散列码,再与回传的散列码相比较,如果不对,则丢弃该ViewState,同时控件将恢复初试状态. (默认情况下asp.net是通过SHA1算法而不是md5算法来生成散列,不过这个可以在machine.config里面配置machineKey validation="MD5"即可);对于ViewState加密就更简单了, 只要在machine.config里设置一下machineKey validation="3DES"即可实现用des加密ViewState了。
对于类型支持方面,ViesState 并不是能存储所有的.net类型数据,它仅仅支持String、Integer、Boolean、Array、ArrayList、Hashtable 以及自定义的一些类型。
在储存页面数据的时候,ViewState永远不会过期,而对于session, 在默认情况下20分钟就过期,它主要使用于储存一些与安全性无关,数据量较少,需要长时间操作的参数,例如在webgis中,保存地图的状态,甚至可以下载保存。
- 浅谈ViewState
- 浅谈ViewState
- 浅谈ViewState、Cookie和Session
- ViewState
- viewstate
- ViewState
- ViewState
- viewstate
- ViewState
- viewstate
- ViewState
- ViewState
- ViewState
- ViewState
- ViewState
- ViewState
- ViewState
- VIEWSTATE
- 云存储“有效”应用和云存储“无效”应用——2009-1-15 CTO俱乐部第一次聚会“云计算”后记
- 学习内容
- php 二维数组入mysql 数据库
- 正确理解 C# 中的 ref 关键字
- 基于Internet Web2.0的客户关系管理
- 浅谈ViewState
- 与php md5算法完全一致的C语言版
- CSDN博客真是不厚道啊
- 关于Freemarker生成静态html文件及中文乱码的问题
- 应用程序性能管理有助于改善SOA
- 线程,事件,同步随笔
- 在Linux控制台下使用libjpeg显示JPEG图像在framebuffer上
- 关于progressive类型jpeg的介绍
- . 与->的区别