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请求访问)3   Cookie:
    利用场合为:存储少量页面中经常改动的信息,典型利用场合为:为登陆过的网站保存登陆用户名,为用户输入提供方便 ,还有在一些用户自定义项目上保存用户的个性化设置。
    优点:不使用服务器资源,实现简单,可配置到期时间。
    缺点:大小受到限制,一般浏览器支持的最大的Cookie 容量为4096字节。客户端用户可能会配置为拒绝Cookie。安全性:保存在客户端的信息可能会被恶意用户修改或者获取,所以不应该保存敏感信息。持久性:保存期限受到客户端的配置影响。
    Cookie 通常用于 存取已知用户自定义内容的个性化情况。在大多数此类情况中,Cookie 是作为“标识”而不是“身份验证”,所以在 Cookie 中只存 储用户名、账户名或唯一用户 ID(例如 GUID)并使用它来访问站点的用户个性化结构是足够的了。
    4   QueryString:
    利用场合为: 将信息从一页传递给另一页的最简单的方法。
    优点:不使用服务器资源,支持广泛,实现简单
    缺点:安全性,因为直接在URL中暴露给用户 ,所以有被篡改的风险。容量有限,一般的浏览器都有255个字符的限制。只有在通过其 URL 请求页时查询字符串才是可行的选择。不能从已提交给服务器的页读取 查询字符串。
    视图状态:需要为将回发到自身的页存储少量信息。ViewState 属性的使用将提供具有基本安全性的功能。 (www.3lian.com)
    隐藏域:需要为将回发到自身或另一页的页存储少量信息,并且不需要较高的安全性。 (客户端事件)只能在提交到服务器的页上使用隐藏域。 
    Cookie:需要在客户端存储少量信息并且不需要较高的安全性。(个性化)  

时间: 2024-11-02 20:36:10

ASP.NET状态保存方法的相关文章

ASP.NET状态保存方法详解

ASP.NET状态保存分为客户端保存和服务器端保存两种: 使用客户端选项存储页信息而不使用服务器资源的这些选项往往具有最低的安全性但具有最快 的服务器性能,因为对服务器资源的要求是适度的.但是,由于必须将信息发送到客户端来进行存储,因此对于以这种方式可以存储多少信息存在一定的客观限制. 客户端保存的方式一般有如下4种: 1.ViewState: 利用场合为:在对同一页的多个请求间自动保留值,多用于客户端的一些事件.,典型利用场合为:页面信息重置, 登陆出错次数统计,Grid列排序等. 优点:不利

亲密接触ASP.Net(15) 状态保存

ASP.Net中状态保存 在ASP保存一些共享.个人状态,使用的是Application.Session.Cookie这三种.呵呵.在ASP.Net中M$除了继承Application等外,又给我们新的一种状态变量信息State,它是用来保存WEB控件的状态的变量,很新鲜吧,一定要快点知道啦:) 不好意思,飞刀还是从原始一步步来说吧.先从Application讲起.(台下一片吼声),没有办法,为了有个阶梯性,还是不应当过早接触新东东啦:) Application 在ASP.Net中Applica

Android保存Activity状态的方法_Android

本文实例讲述了Android保存Activity状态的方法.分享给大家供大家参考,具体如下: 如果你想保存Activity的信息(例如,类实例的变量)而又不需要和其它的组件共享的话,你可以调用Activity的getPreferences方法,不用指定一个Preference的名字.对返回的Shared  Preference的访问只限于调用的Activity:每个Activity支持一个不命名的Shared Preference对象. 下面的框架代码显示了如何使用Activity的私有Shar

Android保存Activity状态的方法

本文实例讲述了Android保存Activity状态的方法.分享给大家供大家参考,具体如下: 如果你想保存Activity的信息(例如,类实例的变量)而又不需要和其它的组件共享的话,你可以调用Activity的getPreferences方法,不用指定一个Preference的名字.对返回的Shared  Preference的访问只限于调用的Activity:每个Activity支持一个不命名的Shared Preference对象. 下面的框架代码显示了如何使用Activity的私有Shar

Android编程实现状态保存的方法分析

本文实例讲述了Android编程实现状态保存的方法.分享给大家供大家参考,具体如下: 1.当我们正在发短信的时候,已经写了几百字了,这时突然来了一个电话,我们接完电话之后,如果发现辛辛苦苦的几百字不见了,那可就火大了,而实际上这些内容都是保存了的.在我们接电话的过程中,我们发信息的那个Activity是可能会被系统回收的,这时会调用Activity的onSaveInstanceState回调方法,而我们就可以在这个方法中保存状态数据,在onCreate方法或者在2.0之后提供的回调方法onRes

网站安全之ASP程序加密/解密方法大揭密

安全|程序|加密|解密 如今,用ASP技术构建的网站随处可见.由于ASP脚本是在服务器上解释执行的(无法编译),因此你辛苦开发出来的ASP代码,很容易被人拷去任意修改,如何保护ASP源代码呢?这是每个ASP站长都会遇到的难题,网上求解这类问题的帖子非常多,下面我们就来谈谈ASP程序的加密方法. 一.如何加密ASP程序? 目前对ASP程序的加密方法主要有三种:脚本编码器(SRCENC.EXE)加密.组件加密.自编程序加密,下面我们就来展开介绍这三种加密方法. 1.使用微软的MS Script En

ASP.NET状态管理之一(概括篇)

每次将网页发送到服务器时,都会创建网页类的一个新实例.在传统的Web编程中,这通常意味着在每一次往返行程中,与该页及该页上的控件相关联的所有信息都会丢失.例如,如果用户将信息输入到文本框,该信息将在从浏览器或客户端设备到服务器的往返行程中丢失. 状态管理是您对同一页或不同页的多个请求维护状态和页信息的过程.与所有基于 HTTP 的技术一样,Web 窗体页是无状态的,这意味着它们不自动指示序列中的请求是否全部来自相同的客户端,或者单个浏览器实例是否一直在查看页或站点.此外,到服务器的每一往返过程都

[Asp.Net]状态管理(Session、Application、Cache、Cookie 、Viewstate、隐藏域 、查询字符串)

原文:[Asp.Net]状态管理(Session.Application.Cache.Cookie .Viewstate.隐藏域 .查询字符串) Session:  1. 客户在服务器上第一次打开Asp.Net页面时,会话就开始了.当客户在20分钟之内没有访问服务器,会话结束,销毁session.(当然也可以在Web.config中设置缓存时间)可以在Global.aspx的Session_Start()事件处理程序中,可以初始化会话变量.在下面的实例中,名为mydata的会话状态被初始化为0:

ASP.NET状态服务及session丢失问题解决方案总结

原文:ASP.NET状态服务及session丢失问题解决方案总结[转载]asp.net Session的实现: asp.net的Session是基于HttpModule技术做的,HttpModule可以在请求被处理之前,对请求进行状态控制,由于Session本身就是用来做状态维护的,因此用HttpModule做Session是再合适不过了. ASP.NET中Session的状态保持方式 ASP.NET提供了Session对象,从而允许程序员识别.存储和处理同一个浏览器对象对服务器上某个特定网络应