快速业务通道

ASP.NET客户端状态管理方式的优缺点

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-19

一般而言,HTTP协议是非状态服务,它不保存任何用户请求信息。直至NetScape开始使用Cookies来保存用户请求信息,Web应用程序有了极大的发展。现在ASP.NET程序员可以使用很多种方式来保存用户请求信息。

下面主要介绍ASP.NET关于客户端状态管理的几种方式。

ASP.NET,提供了Cookies, QueryStrings (URL), Hidden fields, View State and Control state (ASP.NET 2.0),来管理客户端请求。

一、Cookie

Cookie是以文本存储于计算机中,使用name-value匹配。一般用户存储标识用户信息,如:用户名,用户使用配置等。虽然Cookie可以被加密存储,但不推荐在Cookie中保存用户密码。第二,Cookie的大小是限定的,所以不适合存储大型数据。

Example:

1、获取用户ID

if (Request.Cookies["UserId"] != null)
lbMessage.text = "Dear" + Request.Cookies["UserId"].Value + ", Welcome to our website!";
else
lbMessage.text = "Guest,welcome to our website!";

2、设置Cookie

Response.Cookies["UserId"].Value=username;

优点:

使用简单

缺点:

1、客户端可以禁用Cookie

2、Cookie在每次请求或发送时都会被加载,影响传输。

3、易被攻破,所有不适合存储安全信息。

二、Hidden fields(隐藏控件)

Hidden field是在页面级保存信息。与其他用户标准控件的区别是,Hidden Field不被呈现在页面中。当页面提交的时候,Hidden Field中的值将被一同发送给服务端。虽有在ASP.NET 2.0中,我们可以使用ViewState来代替,但Hidden Fields依然可以用来存放一些不关键信息。

现在ASP.NET程序员可以使用很多种方式来保存用户请求信息。下面主要介绍ASP.NET关于状态管理的几种方式。

protected System.Web.UI.HtmlControls.HtmlInputHidden Hidden1;
//to assign a value to Hidden field
Hidden1.Value="Create hidden fields";
//to retrieve a value
string str=Hidden1.Value;

优点:

1、使用简单

2、可以存储少量数据

缺点:

不安全,以明文的形式直接从网络传输

三、View State(状态视图)

状态视图ViewSate,可以用来为单独用户存储信息。你可以通过设置EnableViewState属性来控制ViewState的使用,在默认的情况下属性值为True。ViewSate在每次用户请求或服务端响应时,都会被传输。所以,为了减少网络带宽的使用,可以在不需要状态视图时设置EnableViewState属性值为False。ViewSate在页面中的存储是经过Base64转码的,增加了额外的数据量,所以一定要注意保存较少的ViewSate。

// Add item to ViewState
ViewState["myviewstate"] = myValue;
//Reading items from ViewState
Response.Write(ViewState["myviewstate"]);

优点:

操作简单

被加密

可以在控件级别使用

缺点:

加密编码增加了页面的大小

增价了网络传输

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号