您的位置:首页 > 编程语言 > ASP

Asp.Net编程中,用户状态维护的几种方法

2005-07-14 13:07 459 查看
下面对维持用户状态作简单的描述,如果要深入描述,写一本专业书籍也不过分,其中的使用技巧,需要在实践中获取。

Asp.Net 编程依赖Http协议,而Http协议本身是无状态的,如果要维护用户的状态,那么要采用一些技术方法,根据不同的状况,可以使用不同的方法。

维持用户状态的方法,如下:
查询字符串:在用户访问Web的地址中加入查询字符,可以标记用户状态,因为查询字符是可见的,所以不要用来存储密码等敏感信息;只要提供正确的查询字符,随时有效。
Cookies:可以在用户端存储少量的信息,但是浏览器可能不支持,或者关闭了此功能,所以使用前,要检测客户浏览器是否支持,才可以使用;Cookie的有效期可以设置,几分钟、几天、几月不等,可以根据需要,在未过期前,访问Web站点都是可用的。
ViewState:在Page页面使用ViewState属性存储变量,因为ViewState在Client-Server请求中传输,所以存储的变量不宜过多,否则会影响性能;另外,存储的变量是页面级的,只在本页面有效。
Session:在Server端存储当前用户定义的变量,要分辨用户,要使用Cookie或者查询字符来标记用户,另外,存储的用户变量要占用系统资源,可以根据配置,选择Session变量存储的位置,如本级,或者其他机器。作用范围是整个会话过程。
Application:用来存储整个Web站点的全局变量,对所有访问用户有效。作用范围是整个Web。

使用查询字符:
格式如webform1.aspx?name=user,使用方法Response.Redirect来实现:

private void Button1_Click(object sender, System.EventArgs e)
private void Page_Load(object sender, System.EventArgs e)
private void Page_Load(object sender, System.EventArgs e)
private void Page_Load(object sender, System.EventArgs e)
private void Button1_Click(object sender, System.EventArgs e)
private void Page_Load(object sender, System.EventArgs e)
Application["Uname"] = "Wombat";
Response.Write(Application["Unamme"]);
为了避免这种状况,最简单的办法是建立一个页面的变量,在Page_Load事件中获取Application变量,然后作其他处理,最后在Page_UnLoad中更新Application变量的值。

string mstrUname = "";
private void Page_Load(object sender, System.EventArgs e)
private void Page_UnLoad(object sender, System.EventArgs e)
// Save the state variables back.
Application["Uname"] = mstrUname;
}
不知道除了这些方法外,还有没有其他维持状态的办法。

参考:
Develop Web Applications with visual Basic.net and visual C#.net
Copyright 2002




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: