知识大全 ASP.NET中的状态管理
Posted 信息
篇首语:形成天才的决定因素应该是勤奋-郭沫若本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ASP.NET中的状态管理相关的知识,希望对你有一定的参考价值。
ASP.NET中的状态管理 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
我们在ASP中能够通过cookie 查询字符串 应用程序 对话等轻易地解决这些问题 现在到了ASP NET环境中 我们仍然可以使用这些功能 只是它们的种类更多了 功能也更强大了 管理互联网网页主要有二种不同的方法 客户端和服务器端 客户端的状态管理 在客户端 服务器之间的多次请求 应答期间 服务器上不保存信息 信息将被存储在网页或用户的计算机上 A Cookie cookie是存储在客户端文件系统的文本文件中或客户端浏览器对话的内存中的少量数据 它主要用来跟踪数据设置 下面我们举例说明 假设我们要定制化一个欢迎互联网网页 当用户请求缺省的互联网网页时 应用程序会首先检查用户在此前是否已经注册 我们可以从cookie中获取用户的信息 [c#] if (Request Cookies[ username ]!=null) lbMessage text= Dear +Request Cookies[ username ] Value+ Wele shopping here! ; else lbMessage text= Wele shopping here! ; 如果要存储用户的资料 我们可以使用下面的代码 [c#] Response Cookies[ username ] Value=username; 这样 当用户请求该网页时 我们就可以方便地识别该用户 B 隐藏域 隐藏域不会显示在用户的浏览器中 但我们可以象设置标准控制的属性那样设置其属性 当一个网页被提交给服务器时 隐藏域的内容和其他控制的值一块儿被送到HTTP Form集合中 隐藏域可以是任何存储在网页中的与网页有关的信息的存储库 隐藏域在其value属性中存储一个变量 而且必须被显性地添加在网页上 ASP NET中的HtmlInputHidden控制提供了隐藏域的功能 [c#] protected System Web UI HtmlControls HtmlInputHidden Hidden ; file://给隐藏域赋值 Hidden Value= this is a test ; file://获得一个隐藏域的值 string str=Hidden Value; 需要注意的是 要使用隐藏域 就必须使用HTTP Post方法提交互联网网页 尽管其名字是隐藏域 但它的值并不是隐藏的 我们可以通过 查看源代码 功能找到它的值 C 状态查看 包括网页本身在内的Web Forms网页上的每个控制都有一个名字为ViewState的属性 它是一个自动保持网页和控制状态的内置结构 这意味着在向服务器提交网页后 我们无需采取任何措施来恢复控制的数据 在这里 对我们有用的是ViewState属性 我们可以利用它来保存与服务器之间多次的请求 应答期间的信息 [c#] file://保存信息 ViewState Add( shape circle ); file://获取信息 string shapes=ViewState[ shape ]; 注意 与隐藏域不同的是 在使用查看源代码功能时 ViewState属性的值是不可见的 它们是被压缩和加密的 D 查询字符串 查询字符串提供了一种简单而受限制的维护状态信息的方法 我们可以方便地将信息从一个网页传递给另一个网页 但大多数浏览器和客户端装置都把URL的长度限制在 个字符长 此外 查询值是通过URL传递给互联网的 因此 在有些情况下 安全就成了一个大问题 带有查询字符串的URL如下所示 // examples /list aspx?categoryid= &productid= 当有客户端请求list aspx后 可以通过下面的代码获取目录和产品信息 [c#] string categoryid productid; categoryid=Request Params[ categoryid ]; productid=Request Params[ productid ]; 注意 我们只能使用HTTP Get提交该互联网网页 否则就不能从查询字符串获得需要的值 服务器端的状态管理 信息存储在服务器上 尽管其安全性较高 但会占用较多的web服务器资源 A Aplication对象 Aplication对象提供了一种让所有在Web应用服务器中运行的代码访问的存储数据的机制 插入应用程序对象状态变量的数据应该能够被多个对话共享 而且不会频繁地改变 正是因为它能够被全部应用程序所访问 因此 我们需要使用Lock和UnLock对避免其中的值出现冲突 [c#] Application Lock(); Application[ mydata ]= mydata ; Application UnLock(); B Session对象 Session对象可以用来存储需要在服务器的多次请求 应答期间和对网页的请求期间进行维护的指定对话的信息 Session对象是每个对话的存在的基础 也就是说不同的客户端生成不同的Session对象 存储在对话状态变量中的数据存在的周期较短 每个活动的ASP NET对话是由一个包含合法的URL ASCII字符 长度为 位的SessionID字符串唯一确定和跟踪的 SessionID的值是由一个能够保证唯一性的算法生成的 以便对话之间不会冲突 SessionID的随意性使得我们很难猜测出一介现有对话的ID 根据应用程序的配置设置情况 SessionID通过HTTP cookie或修改后的URL在客户端 服务器请求之间进行传输 那么 如何设置应用程序配置的对话装备方法 每个web应用程序必须有一个名字为web config的配置文件 它是基于XML文件的 下面是一个名字为sessionState的对话 cookieless选项的值为true或false 当其值为false(缺省值)时 ASP NET将使用HTTP cookie来识别用户 当其值是true时 ASP NET将随机地生成一个唯一的号码 并将它放在被请求的文件的前面 这一号码是用来识别用户的 我们能够在IE的地址栏中看到它 //localhost/Management/( yzakzez eqxut ukyzq qp)/Default aspx OK 下面我们再回到session对象 [c#] file://存储信息 Session[ myname ]= Mike ; file://获得信息 myname=Session[ myname ]; C 数据库 数据库将使我们能够存储大量的与Web应用程序中的状态相关的信息 有时 用户会使用唯一的ID频繁地访问数据库 我们可以将它存储在数据库中 在对网站中网页的多次请求中使用 总结 ASP NET中的功能和工具比ASP中更多 使我们能够更有效和高效地管理网页的状态 具体选择哪种方法与你的应用程序有关 在选择时可以考虑下面的问题 ·需要存储多少信息? ·客户端接受持久的还是内存中的cookie? ·希望在客户端还是在服务器端存储信? ·要存储的信息需要保密吗? ·希望你的网页的性能如何? cha138/Article/program/ASP/201311/21903相关参考
详解ASP.NET状态管理方式优缺点 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 现在ASPN
ASP.NET创建Web服务之管理Web服务状态 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
ASP.NET客户端状态管理方式的优缺点 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一般而言
介绍: 在我解释cache管理机制时首先让我阐明下一个观念IE下面的数据管理每个人都会用不同的方法去解决如何在IE在管理数据有的会提到用状态管理有的提到的cache管理这里我比较喜欢cache管
ASP.NET状态保存方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ASPNET状态保存分
在ASP与ASP.NET之间共享对话状态(1) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 前
详解ASP.NET的四种状态 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 这些状态的原理对于做
详细介绍ASP.NET状态保存方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ASPNET状
ASP.NET保持用户状态的九种选择(下) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ASP
ASP.NET服务器控件之视图状态 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 为Web页面及