ASP.NET基础培训 - Cookie的正确利用

Cookies有很多名字,HTTP Cookie, Web Cookie, Browser Cookie, Session Cookie等。

在网站开发的过程中,很多初学者其实滥用了它。

它的正确意义在于,它是在用于存储网站用户的个人数据的,什么时候存储呢?

在客户端和服务器处于未连接状态时候存的,也就是存在本地的脱机数据。

事实上,Cookie就是服务器发给客户端存在本地的小规模文本。

 

使用场景:

用户认证,会话认证,用户偏好设置,购物车数据,或者其它能够传输文本的业务。

创建Cookie:

方法1(使用HttpCookie类):

//First Way
HttpCookie StudentCookies = new HttpCookie("StudentCookies");
StudentCookies.Value = TextBox1.Text;
StudentCookies.Expires = DateTime.Now.AddHours(1);
Response.Cookies.Add(StudentCookies);

方法2(直接使用Response):

//Second Way
Response.Cookies["StudentCookies"].Value = TextBox1.Text;
Response.Cookies["StudentCookies"].Expires = DateTime.Now.AddDays(1);

在一个Cookie中存储多个值:

//Writing Multiple values in single cookie
Response.Cookies["StudentCookies"]["RollNumber"] = TextBox1.Text;
Response.Cookies["StudentCookies"]["FirstName"] = "Abhimanyu";
Response.Cookies["StudentCookies"]["MiddleName"] = "Kumar";
Response.Cookies["StudentCookies"]["LastName"] = "Vatsa";
Response.Cookies["StudentCookies"]["TotalMarks"] = "499";
Response.Cookies["StudentCookies"].Expires = DateTime.Now.AddDays(1); 


获取Cookie的值:

单个值:

string roll = Request.Cookies["StudentCookies"].Value; 

多个值:

//For Multiple values in single cookie
string roll;
roll = Request.Cookies["StudentCookies"]["RollNumber"];
roll = roll + " " + Request.Cookies["StudentCookies"]["FirstName"];
roll = roll + " " + Request.Cookies["StudentCookies"]["MiddleName"];
roll = roll + " " + Request.Cookies["StudentCookies"]["LastName"];
roll = roll + " " + Request.Cookies["StudentCookies"]["TotalMarks"];
Label1.Text = roll; 


删除Cookie:

if (Request.Cookies["StudentCookies"] != null)
{
    Response.Cookies["StudentCookies"].Expires = DateTime.Now.AddDays(-1);
    Response.Redirect("Result.aspx");  //to refresh the page
}

 

Now, fish! Can you use the cookie correctly?

 

 

 

 

 

posted @ 2013-03-13 11:09  Master HaKu  阅读(270)  评论(0编辑  收藏  举报