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
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
相关文章推荐
- Asp.Net编程中,用户状态维护的几种方法 ---(转自Pierce)
- mysql报关于用户密码1045(28000),几种处理方法 (zhuan)
- 使用JS在浏览器中判断当前网络连接状态的几种方法
- ASP.Net 更新页面输出缓存的几种方法(包括用户控件,iframe,页面缓存等)
- 将MS SQL SERVER数据库运行在普通用户(独立用户)状态下的设置方法终结篇
- 用户控件(.ascx)与网页间(.aspx)如何传值的几种方法
- 用户控件(.ascx)与网页间(.aspx)如何传值的几种方法
- 解决IE7以下版本不支持无A状态伪类的几种方法
- 桌面任务栏右侧的输入法状态(也就是语言栏)不见了-几种解决方法
- 用户控件(.ascx)与网页间(.aspx)如何传值的几种方法(持续更新)
- iOS 判断网络连接状态的几种方法
- 存取程序状态的几种方法--Java I/O应用杂谈
- AE控制图层中要素可见状态的几种方法
- 服务器:消息18456,级别16,状态1 用户‘sa’登录失败解决方法
- 建立Linux用户的几种方法
- 服务器:消息18456,级别16,状态1 用户‘sa’登录失败解决方法
- mysql报关于用户密码1045(28000),几种处理方法
- AE控制图层中要素可见状态的几种方法
- 数据库OPEN状态下迁移数据文件的几种方法
- html文本框不可编辑,禁止用户修改的几种方法