Webform:Session、Cookie对象的用法

时间:2020-12-08 05:08:38

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);使用此方法,可以在不变动地址栏显示的地址的情况下跳转页面(比如一定要用地址栏传址但又不想让用户看到所传变量时)