Cookies对象的使用
•
•Cookie可以定义为服务器存储在浏览器上的少量信息,它的主要用途是在客户端系统中保留客户的个人信息,而Cookie又分为两类
(1)会话Cookie的创建方式
(2)还有一种Cookie称为持久性Cookie,它是有一定的生命周期的,用户可以自定义这个生命周期,这种持久性的Cookie会以特殊文件的形式保存在客户端,当用户再次访问这个网站时,服务器会自动取出该用户的相关信息
创建语法:
HttpCookie myCookie = new
HttpCookie("UserSettings",”hello”);
Response.Cookies.Add(myCookie);
session
session的存储
•在ASP.NET中,Session的存储方式有三种
–使用那种存储方式是在Web.config文件中进行设置的,先来看Web.config中关于Session的一段代码片断:
•<sessionState mode="InProc" cookieless="false" timeout="20" />
–还有一种Mode的值为StateServer,这种模式的特别之处是,重新启动IIS时,所保存的Session值是不会丢失的。
–最后一种Mode属性的值为SQL Server,它是指该会话状态保存在有SQL Server数据库的计算机上,并且当数据库重启服务时,会话数据依然会保留。
应用举例
利用Sesson传递用户登陆信息。核心代码如下:
protected void Button1_Click(object sender, EventArgs e)
{
if (this.TextBox1.Text.Trim() != "")
{
Session["username"] = this.TextBox1.Text.Trim();
this.Response.Redirect("Default.aspx");
}
else
{
this.Literal1.Text = "请输入昵称!";
}
}
区别:
1、cookie
cookie数据保存在客户端(设置过期时间expires则同时保存在磁盘上,否则只保存在内存中),可被客户端脚本修改,当向服务器发送请求时,(在已经开启会话的前提下sesseion_start)会携带本地的cookie信息(假如有的话)一起发送出去,cookie是不安全的,单个cookie在客户端的大小显示是3k。
2、session
session数据保存在服务器,同时服务器发送sessionid给浏览器并在浏览器中生成名为jsessionID的输出cookie(称为session cookie,保存在浏览器内存中,如果服务器对该cookie设置了expires则同时会保存到磁盘上),
如果没有设置session cookie过期期限则session是针对某一次会话而言,当该次会话结束时(关闭浏览器),相应的session cookie也就消失了(因为是保存在内存当中)。session基于cookie和url重写,默认使用cookie,当浏览器禁用cookie时,采用url重写的方式向服务器传递sessionID。
总结:session只在浏览器端存储一个标识该session的串作为cookie,可以通过这样来设置session的过期期限setcookie(session_name(), session_id(), time() + $lifeTime, "/");另外服务器端设置cookie(setcookie())必须在有内容输出之前执行,否则会失效!!!