ASP.NET状态管理之十三(总结)

状态管理是您对同一页或不同页的多个请求维护状态和页信息的过程。与所有基于 HTTP 的技术一样,Web 窗体页是无状态的,这意味着它们不自动指示序列中的请求是否全部来自相同的客户端,或者单个浏览器实例是否一直在查看页或站点。此外,到服务器的每一往返过程都将销毁并重新创建页;因此,如果超出了单个页的生命周期,页信息将不存在。

ASP.NET 提供多种方式来在服务器往返过程之间维护状态。对这些状态管理选项的选择主要取决于您的应用程序,并且应基于以下条件:

需要存储的信息量有多大?

客户端是接受持久性的还是内存中的 Cookie?

要将信息存储在客户端还是服务器上?

信息是否是敏感信息?

您对应用程序设定了什么样的性能和带宽条件?

目标浏览器和设备具有什么样的功能?

您是否需要储存基于用户的信息?

信息需要存储多长时间?

您使用 Web 场(多个服务器)、Web 园(一个计算机上的多个进程)还是单个进程来运行应用程序?

客户端状态管理

视图状态

Web 窗体页提供 ViewState 属性作为内置结构,在对同一页的多个请求间自动保留值。视图状态作为页中的隐藏域来进行维护。

可以使用视图状态在页回发到自身时跨越往返过程存储您自己的页特定值。例如,如果您的应用程序正在维护用户特定的信息(即,该信息在页上使用,但不是任何控件所必需的部分),则可以使用视图状态存储该信息。

使用视图状态的优点

不需要任何服务器资源  视图状态包含在页代码内的结构中。

实现简单  视图状态无需使用任何自定义编程。默认情况下对控件启用状态数据的维护。

增强的安全功能  视图状态中的值经过哈希计算和压缩,并且针对 Unicode 实现进行编码,其安全性要高于使用隐藏域。

使用视图状态的缺点

性能注意事项  由于视图状态存储在页本身,因此如果存储较大的值,用户显示页和发送页时的速度可能会减慢。尤其是对移动设备,其带宽通常是有限的。

设备限制  移动设备可能没有足够的内存容量来存储大量的视图状态数据。

潜在的安全风险  视图状态存储在页上的一个或多个隐藏域中。虽然视图状态以哈希格式存储数据,但它可以被篡改。如果直接查看页输出源,可以看到隐藏域中的信息,这导致潜在的安全性问题。

时间: 2024-11-01 10:55:56

ASP.NET状态管理之十三(总结)的相关文章

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状态管理之七(其他物理数据存放媒体)

ASP.NET状态存储还可以存放在数据库,XML文件,文本文件,注册表中等等,物理数据存放媒体 数据库 首推ADO.NET XML 管理XML文档和流主要由System.Xml命名空间中类执行 文件 相关类在System.IO命名空间中 注册表操作由System.Win32命名空间中2个类执行

ASP.NET状态管理之九(会话Session)

ASP.NET 允许您使用会话状态保存每个活动的 Web 应用程序会话的值,会话状态是 HttpSessionState 类的一个实例. 会话状态与应用程序状态相似,不同的只是会话状态的范围限于当前的浏览器会话.如果有不同的用户在使用您的应用程序,则每个用户会话都将有一个不同的会话状态.此外,如果同一用户在退出后又返回到应用程序,第二个用户会话的会话状态也会与第一个不同. 会话状态采用键/值字典形式的结构来存储特定于会话的信息,这些信息需要在服务器往返行程之间及页请求之间进行维护. 可以使用会话

ASP.NET状态管理之八(应用程序Application)

ASP.NET 允许您使用应用程序状态来保存每个活动的 Web 应用程序的值,应用程序状态是 HttpApplicationState 类的一个实例. 应用程序状态是一种全局存储机制,可从 Web 应用程序中的所有页面访问.因此,应用程序状态可用于存储需要在服务器往返行程之间及页请求之间维护的信息. 应用程序状态存储在一个键/值字典中,在每次请求一个特定的 URL 期间就会创建这样一个字典.可以将特定于应用程序的信息添加到此结构以在页请求期间存储它. 一旦将应用程序特定的信息添加到应用程序状态中

ASP.Net状态管理

asp.net Asp.Net提供了四种状态类型:application,session,cookie,view. Application状态为应用程序提供了一个全局的状态.所有客户都可以使用该状态.从设计的角度来说,我们通常用Application来存储一些标准的数据.同时,我们在使用它时要注意避免性能的降低,存储的数据尽可能提供给客户只读的功能. 我们可以使用HttpApplication类的Application属性来访问Application状态,它返回一个HttpApplication

ASP.NET状态管理之十二(控件状态ControlState)

如果您在编写控件,可以将控件的状态信息存储在 ViewState 字典中,该字典是一个 StateBag 对象.开发人员将通过 ControlState 属性检索控件状态.您为 ViewState 属性指定键和值,Page 对象将对请求之间的状态信息进行序列化.要在您的控件中执行自定义状态处理,可重写 LoadViewState 和 SaveViewState 方法.在页开发人员禁用视图状态时,存储在此字典中的所有状态信息都会丢失.为弥补这一缺陷,在 ASP.NET 2.0 版中,您可以将关键状

ASP.NET状态管理之十一(视图状态ViewState)

视图状态是 ASP.NET 页框架默认情况下用于保存往返过程之间的页和控件值的方法.当呈现页的 HTML 形式时,需要在回发过程中保留的页的当前状态和值将被序列化为 Base64 编码的字符串,并输出到视图状态的隐藏字段中. 视图状态是 ASP.NET 页中的储存库,可以存储需要在回发过程中保留的值.例如,您可以将信息存储在视图状态中,下次将页面发送到服务器时,将会在页加载事件过程中访问这些信息. 您可以使用页的 ViewState 属性(此属性公开一个字典对象)来访问视图状态信息.由于视图状态

ASP.NET状态管理之十(配置文件Profile)

在许多应用程序中,需要存储并使用对用户唯一的信息.用户访问站点时,您可以使用已存储的信息向用户显示 Web 应用程序的个性化版本.个性化应用程序需要大量的元素:必须使用唯一的用户标识符存储信息,能够在用户再次访问时识别用户,然后根据需要获取用户信息.若要简化应用程序,可以使用 ASP.NET 配置文件功能,该功能可为您执行所有上述任务. ASP.NET 配置文件功能将信息与单个用户关联,并采用持久性的格式存储这些信息.通过配置文件,可以管理用户信息,而无需创建和维护自己的数据库.此外,通过使用可