动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP.NET实例
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ ASP.NET实例 ]的信息

本月文章推荐
.DotNet Form间数据传递.
.创建ASP.NET监视服务器进程 .
.做完一个小网站的一点经验总结(2.
.asp.net用url重写URLReWriter实现.
.用ASP.NET和XML做的新闻系统.
.使用ASP.NET加密口令.
.asp.net 上传大文件控件.
.用Asp.Net创建基于Ajax的聊天室程.
.设计ASP.NET新闻管理系统.
.用.NET创建定时缓存.
.操作Excel(C#) .
.ASP.NET读取POP3邮件的操作.
.检测是否还有黑客代码的asp.net函.
.基于asp.net的webmenu的数据操作1.
.使用net classes访问其他网站内容.
.基于asp.net的webmenu的数据操作5.
.ASP.NET的用户控件.
.ASP.NET结合COM组件发送Email.
.如何实现站点的RSS输出.
.DotNet语音技术实现.

ASP.NET中的状态管理

发表日期:2003-12-29 |


我们在ASP中能够通过cookie、查询字符串、应用程序、对话等轻易地解决这些问题。现在到了ASP.NET环境中,我们仍然可以使用这些功能,只是它们的种类更多了,功能也更强大了。

  管理互联网网页主要有二种不同的方法:客户端和服务器端。

1、客户端的状态管理:

  在客户端、服务器之间的多次请求-应答期间,服务器上不保存信息,信息将被存储在网页或用户的计算机上。

  A、Cookie

  cookie是存储在客户端文件系统的文本文件中或客户端浏览器对话的内存中的少量数据,它主要用来跟踪数据设置。下面我们举例说明:假设我们要定制化一个欢迎互联网网页,当用户请求缺省的互联网网页时,应用程序会首先检查用户在此前是否已经注册,我们可以从cookie中获取用户的信息:

[c#]
if (Request.Cookies[“username”]!=null)
lbMessage.text=”Dear “+Request.Cookies[“username”].Value+”, Welcome shopping here!”;
else
lbMessage.text=”Welcome shopping here!”;

  如果要存储用户的资料,我们可以使用下面的代码:

[c#]
Response.Cookies[“username’].Value=username;

   这样,当用户请求该网页时,我们就可以方便地识别该用户。

  B、隐藏域

  隐藏域不会显示在用户的浏览器中,但我们可以象设置标准控制的属性那样设置其属性。当一个网页被提交给服务器时,隐藏域的内容和其他控制的值一块儿被送到HTTP Form集合中。隐藏域可以是任何存储在网页中的与网页有关的信息的存储库,隐藏域在其value属性中存储一个变量,而且必须被显性地添加在网页上。

  ASP.NET中的HtmlInputHidden控制提供了隐藏域的功能。

[c#]
protected System.Web.UI.HtmlControls.HtmlInputHidden Hidden1;
file://给隐藏域赋值
Hidden1.Value=”this is a test”;
file://获得一个隐藏域的值
string str=Hidden1.Value;

  需要注意的是,要使用隐藏域,就必须使用HTTP-Post方法提交互联网网页。尽管其名字是隐藏域,但它的值并不是隐藏的,我们可以通过“查看源代码”功能找到它的值。
  C、状态查看

  包括网页本身在内的Web Forms网页上的每个控制都有一个名字为ViewState的属性,它是一个自动保持网页和控制状态的内置结构,这意味着在向服务器提交网页后,我们无需采取任何措施来恢复控制的数据。
在这里,对我们有用的是ViewState属性,我们可以利用它来保存与服务器之间多次的请求-应答期间的信息。

[c#]
file://保存信息
ViewState.Add(“shape”,”circle”);
file://获取信息
string shapes=ViewState[“shape”];

  注意:与隐藏域不同的是,在使用查看源代码功能时,ViewState属性的值是不可见的,它们是被压缩和加密的。
  D、查询字符串

  查询字符串提供了一种简单而受限制的维护状态信息的方法,我们可以方便地将信息从一个网页传递给另一个网页,但大多数浏览器和客户端装置都把URL的长度限制在255个字符长。此外,查询值是通过URL传递给互联网的,因此,在有些情况下,安全就成了一个大问题。

  带有查询字符串的URL如下所示:

   http://www.examples.com/list.aspx?categoryid=1&productid=101

  当有客户端请求list.aspx后,可以通过下面的代码获取目录和产品信息:

[c#]
string categoryid, productid;
categoryid=Request.Params[“categoryid”];
productid=Request.Params[“productid”];

  注意,我们只能使用HTTP-Get提交该互联网网页,否则就不能从查询字符串获得需要的值。
  2、服务器端的状态管理

  信息存储在服务器上,尽管其安全性较高,但会占用较多的web服务器资源。

  A、Aplication对象

  Aplication对象提供了一种让所有在Web应用服务器中运行的代码访问的存储数据的机制,插入应用程序对象状态变量的数据应该能够被多个对话共享,而且不会频繁地改变。正是因为它能够被全部应用程序所访问,因此,我们需要使用Lock和UnLock对避免其中的值出现冲突。


[c#]
Application.Lock();
Application[“mydata”]=”mydata”;
Application.UnLock();

  B、Session对象

  Session对象可以用来存储需要在服务器的多次请求-应答期间和对网页的请求期间进行维护的指定对话的信息。Session对象是每个对话的存在的基础,也就是说不同的客户端生成不同的Session对象。存储在对话状态变量中的数据存在的周期较短。

  每个活动的ASP.NET对话是由一个包含合法的URL ASCII字符、长度为120位的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的地址栏中看到它:

  http://localhost/Management/(2yzakzez3eqxut45ukyzq3qp)/Default.aspx
  OK,下面我们再回到session对象。

[c#]
file://存储信息
Session[“myname”]=”Mike”;
file://获得信息
myname=Session[“myname”];

  C、数据库

  数据库将使我们能够存储大量的与Web应用程序中的状态相关的信息,有时,用户会使用唯一的ID频繁地访问数据库,我们可以将它存储在数据库中,在对网站中网页的多次请求中使用。
  总结

  ASP.NET中的功能和工具比ASP中更多,使我们能够更有效和高效地管理网页的状态。具体选择哪种方法与你的应用程序有关,在选择时可以考虑下面的问题:

  ·需要存储多少信息?
  ·客户端接受持久的还是内存中的cookie?
  ·希望在客户端还是在服务器端存储信?
  ·要存储的信息需要保密吗?  
  ·希望你的网页的性能如何?

上一篇:ASP.NET读取POP3邮件的操作 人气:11945
下一篇:ASP.NET窗体对话框的实现 人气:15631
浏览全部ASP.NET的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-12 team论坛 v2.0.4 bulid 080916 A
2008-10-12 Roclog v3.1.6
2008-10-12 SupeV v1.0.1 简体中文 GBK
2008-10-12 NetCMS v1.6.0.1010 正式版
2008-10-12 PHP考试系统PPFrame v1.2.7
2008-10-12 LPAS个人相册 v1.6.3
2008-10-12 快问仿百度知道系统 动态-静态-互
2008-10-12 方卡广告防点击系统 V1.0 GB2312
2008-10-12 泡菜内容管理系统[PCMS] v1.0 Bu
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成