Webform:Session、Cookie对象的用法
Session
优点:1.使用简单,不仅能传递简单数据类型,还能传递对象。
2.数据量大小是不限制的。
缺点:1.在Session变量存储大量的数据会消耗较多的服务器资源。
2.容易丢失。
使用方法:1.在源页面的代码中创建你需要传递的名称和值构造Session变量:Session["Name"]="Value(Or Object)";
2.在目的页面的代码使用Session变量取出传递的值。Result = Session["Nmae"]
注意:session不用时可以销毁它,销毁的方法是:清除一个:Session.Remove("session名");
清除所有:Session.Clear();
生命周期:20分钟(不进行操作的情况下,执行任何提交的话,生命周期将重新从20分钟开始倒计时)
例子:(1)a.aspx
private void Button1_Click(object sender, System.EventArgs e) { Session["name"] = Label.Text; }
(2)b.aspx
private void Page_Load(object sender, EventArgs e) { string name; name = Session["name"].ToString(); }
Cookie
这个也是大家常使用的方法,Cookie用于在用户浏览器上存储小块的信息,保存用户的相关信息,比如用户访问某网站时用户的ID,用户的偏好等,用户下次访问就可以通过检索获得以前的信息。所以Cookie也可以在页面间传递值。Cookie通过HTTP头在浏览器和服务器之间来回传递的。Cookie只能包含字符串的值,如果想在Cookie存储整数值,那么需要先转换为字符串的形式。
与Session一样,其是什对每一个用户而言的,但是有个本质的区别,即Cookie是存放在客户端的,而session是存放在服务器端的。而且Cookie的使用要配合ASP.NET内置对象Request来使用。
优点:1.使用简单,是保持用户状态的一种非常常用的方法。比如在购物网站中用户跨多个页面表单时可以用它来保持用户状态。
缺点:1.常常被人认为用来收集用户隐私而遭到批评。
2.安全性不高,容易伪造。
会话Cookie(临时):
清除方法:
1、浏览器一关,此次访问一中断
2、没有任何新的提交,20分钟过期
3、手动清除浏览器Cookie
持久Cookie:
清除方法:
1、代码设置过期
2、手动清除浏览器Cookie
用法:
1、获取账号:Response.Cookies["user"].Value = TextBox1.Text;
2、给该账号设置登录保持的过期时间:Response.Cookies["user"].Expires = DateTime.Now.AddDays(3);
3、清除cookies:Response.Cookies["user"].Expires = DateTime.Now.AddDays(-3); 只要让数值为负即可,表示已过期几天
Server.Transfer("Default2.aspx);使用此方法,可以在不变动地址栏显示的地址的情况下跳转页面(比如一定要用地址栏传址但又不想让用户看到所传变量时)