session & viewstate
session.是会话级别的.只要会话没有过期.session中存的数据就在.
viewstate是页面级别的.只要这个页面在.viewstate中存的数据就在.
就是说viewstate中存的数据只能在声明该变量的页面中使用.
比如在某页的page_load中声明了:ViewState["test"]="fdasfdsa";
那么在该页中的任何一个方法中都可以使用ViewState["test"]来直接得到值"fdsafdsa".
Session,ViewState用法
基本理论:
session值是保存在服务器内存上,那么,可以肯定,大量的使用session将导致服务器负担加重.
数据类型:
但viewstate并不是能存储所有的.net类型数据,它仅仅支持String、Integer、Boolean、Array、ArrayList、Hashtable
其他考虑
当然,任何事物都有两面性,
其实,对于viewstate的安全性问题,asp.net还给我们提供了更多的选择.一般如果要保护viewstate有两种方式:
这样asp.net就会自动的在viewstate中追加一个散列码,在页面回传时,服务器根据回传的viewstate生成一个散列码,再与回传的散列码相比较,如果不对,则丢弃该viewstate,同时控件将恢复初试状态.
而viewstate加密就更简单了,
使用方法
怎么在客户端,存取ViewState?
应用环境
一些与安全性无关,数据量较小,需要长时间操作的参数,应该用ViewState存取。
在webgis中,地图的各种相关状态,如zoom,