详细介绍ASP.NET状态保存方法

http://tech.ddvip.com   2007年08月27日    社区交流

内容摘要:本文详细介绍ASP.NET状态保存方法

  ASP.NET状态保存分为客户端保存和服务器端保存两种:

  使用客户端选项存储页信息而不使用服务器资源的这些选项往往具有最低的安全性但具有最快 的服务器性能,因为对服务器资源的要求是适度的。但是,由于必须将信息发送到客户端来进行存储,因此对于以这种方式可以存储多少信息存在一定的客观限制。

  客户端保存的方式一般有如下4种:

  1   ViewState:

  利用场合为:在对同一页的多个请求间自动保留值,多用于客户端的一些事件。,典型利用场合为:页面信息重置, 登陆出错次数统计,Grid列排序等。

  优点:不利用服务器端资源,实现简单,相对高的安全性:因为经过哈希计算和压缩,并且针对 Unicode 实现进行编码。

  缺点:因为ViewState存储在页面本身,所以无法存储较大的值。并且通过源文件可以看见其中的值 ,虽然经过哈希计算和压缩,但仍有被篡改的风险。

  可存储的类型:string,integer,bool,array,arr aylist,hashtable以及其他可以序列化的类型。

  2   HiddenField:

  利用场合为:存储少量页面 中经常改动的信息,多和客户端脚本一块使用,典型利用场合为:客户端经历一系列验证之后向服务器端回发,服务器端从客户端HiddenField中获取值,进行处理。例如 :LeyserHomepage中,要删除一项产品,需要在客户端弹出确认Form,用户确认之后再PostBac k回服务器端进行数据库Delete操作,当用户确认要删除时,将当前要删除的产品ID存放到一个HiddenField中,然后执行 Form(0).submit回发到服务器端,服务器端再从HiddenField获取产品ID值,进行数据库操作。

  优点:不使用服务器资源 ,广泛支持,实现简单

  缺点:安全性不高,因为它被包含在页面上进行发送,所以可以通过源文件看见他的内容。存储结构少,仅仅支持string,integer,bool,array,arraylis t等简单的数据结构。并且在其上只存放简单的单值,若要存放多值,需要额外编码。存储量少,因为它被存储在页面本身,所以 无法存储较大的值。而且大的数据量会受到防火墙和代理的阻止。 注意: 使用了HiddenField之后,需要回发到服务器进行 处理,应该使用Http Post方法而不是Http Get方法(通过URL请求访问)

责编:豆豆技术应用

正在加载评论...