>加入收藏
>意见留言
>联系我们
会员登录
投递文章
首 页
|
新闻资讯
|
软件应用
|
图形图像
|
网络应用
|
硬件学堂
|
程序开发
|
安全中心
|
素材下载
最新推荐:
您的位置:
IT频道
>
程序开发
>
WEB开发文章
> 文章内容
随机推荐
热门文章TOP10
·[
WEB开发文章
]
ASP教程13:数据库查询语言(2)
·[
WEB开发文章
]
ASP教程14:ActiveX 组件
·[
WEB开发文章
]
用ASP.NET加密口令
·[
WEB开发文章
]
在DATAGRID中使用分类标题
·[
WEB开发文章
]
ASP中页面限权访问的几种方法
·[
WEB开发文章
]
ASP教程之Request对象的使用
·[
WEB开发文章
]
ASP教程7:ASP内建对象Request
·[
WEB开发文章
]
ASP教程6:ASP脚本循环语句
·[
WEB开发文章
]
ASP教程11:ASP内建对象Server
·[
WEB开发文章
]
Asp.net Xml开发网络硬盘
编程高手 ASP.NET 状态管理
[ 来源:博客网 ] [ 作者: ][ 时间:2007-10-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
大泗县 网,www.daSixian.com
2。Cookie在每次请求或发送时都会被加载,影响传输。
3。易被攻破,所有不适合存储安全信息。
二。Hidden fields(隐藏控件)
Hidden field是在页面级保存信息。与其他用户标准控件的区别是,Hidden Field不被呈现在页面中。当页面提交的时候,Hidden Field中的值将被一同发送给服务端。虽有在ASP.NET 2.0中,我们可以使用ViewState来代替,但Hidden Fields依然可以用来存放一些不要害信息。
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。可以存储少量数据
缺点:
1。不安全,以明文的形式直接从网络传输
三。View State(状态视图)
状态视图ViewSate,可以用来为单独用户存储信息。你可以通过设置EnableViewState属性来控制ViewState的使用,在默认的情况下属性值为True。ViewSate在每次用户请求或服务端响应时,都会被传输。所以,为了减少网络带宽的使用,可以在不需要状态视图时设置EnableViewState属性值为False。ViewSate在页面中的存储是经过Base64转码的,增加了额外的数据量,所以一定要注重保存较少的ViewSate。
大泗县 网,www.daSixian.com
// Add item to ViewState
ViewState["myviewstate"] = myValue;
//Reading items from ViewState
Response.Write(ViewState["myviewstate"]);
优点:
操作简单
被加密
可以在控件级别使用
缺点:
加密编码增加了页面的大小
增价了网络传输
四:Query strings
Query String常用于页面传值。很多浏览器都会有长度限制,一般在255个字节。值得注重的是,尽量使用Server.UrlEncode,来避免一些意外情况,如Sql注入。
string productid;
productid=Request.Params["productid"]
服务端
一。Application
Application在整个应用程序都是可见的,所有用户分享同一个Application。在ASP中,常用来存放链接字符串。
Application.Lock();
Application["mydata"]="mydata";
Application.UnLock();
二。Session
Session为每个用户单独存储用户信息。Session有三种存放方式。"inproc" , "sqlserver" , "stateserver。
InProc,数据保存在服务端进程中。由于目前有600M的内存限制,可以导致进程重启,而失去所有的状态信息。
www.dasixian.com
SqlServer,存放与数据库之中,用户状态可以永久保留。
StateServer,存放与另一台状态服务器中。
Session["UserId"]="UserId";
string UserId = Session["UserId"].ToString();
发布者:
上一篇:
编程技巧 asp.net控件本质
下一篇:
ASP.NET中自动给URL加上超级链接
评论列表
评论加载中…
大泗县网站
IT频道
下面主要介绍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
大泗县 网,www.daSixian.com
2。Cookie在每次请求或发送时都会被加载,影响传输。
3。易被攻破,所有不适合存储安全信息。
二。Hidden fields(隐藏控件)
Hidden field是在页面级保存信息。与其他用户标准控件的区别是,Hidden Field不被呈现在页面中。当页面提交的时候,Hidden Field中的值将被一同发送给服务端。虽有在ASP.NET 2.0中,我们可以使用ViewState来代替,但Hidden Fields依然可以用来存放一些不要害信息。
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。可以存储少量数据
缺点:
1。不安全,以明文的形式直接从网络传输
三。View State(状态视图)
状态视图ViewSate,可以用来为单独用户存储信息。你可以通过设置EnableViewState属性来控制ViewState的使用,在默认的情况下属性值为True。ViewSate在每次用户请求或服务端响应时,都会被传输。所以,为了减少网络带宽的使用,可以在不需要状态视图时设置EnableViewState属性值为False。ViewSate在页面中的存储是经过Base64转码的,增加了额外的数据量,所以一定要注重保存较少的ViewSate。 大泗县 网,www.daSixian.com
// Add item to ViewState
ViewState["myviewstate"] = myValue;
//Reading items from ViewState
Response.Write(ViewState["myviewstate"]);
优点:
操作简单
被加密
可以在控件级别使用
缺点:
加密编码增加了页面的大小
增价了网络传输
四:Query strings
Query String常用于页面传值。很多浏览器都会有长度限制,一般在255个字节。值得注重的是,尽量使用Server.UrlEncode,来避免一些意外情况,如Sql注入。
string productid;
productid=Request.Params["productid"]
服务端
一。Application
Application在整个应用程序都是可见的,所有用户分享同一个Application。在ASP中,常用来存放链接字符串。
Application.Lock();
Application["mydata"]="mydata";
Application.UnLock();
二。Session
Session为每个用户单独存储用户信息。Session有三种存放方式。"inproc" , "sqlserver" , "stateserver。
InProc,数据保存在服务端进程中。由于目前有600M的内存限制,可以导致进程重启,而失去所有的状态信息。
SqlServer,存放与数据库之中,用户状态可以永久保留。
StateServer,存放与另一台状态服务器中。
Session["UserId"]="UserId";
string UserId = Session["UserId"].ToString();
评论列表