6/25/12

Quản lý Cookie trong Asp.net


Cookie chỉ là một cái file text nhỏ chứa nội dung có cấu trúc theo định dạng của cookie (ví dụ name=value..). Tùy thuộc vào mỗi trình duyệt thì nó sẽ lưu trữ cookie ở các nơi khác nhau. Đó là lý do bạn lưu cookie trên trình duyệt này thì trình duyệt kia vẫn không thấy cookie đó. Cần phân biệt giữa Session và Cookie. Có nhiều bạn lầm lẫn giữa 2 cái đó. Session thì được lưu trữ trên Server chứ không phải ở Client.

Tạo mới hoặc lưu cookie vào cookie đã có như sau:
[ C# ]
Response.Cookies["CookieName"].Value = "CookieValue";
// Cookies are temporally files, so you need to set how long cookie will be present on client hard disk before it is deleted
Response.Cookies["CookieName"].Expires = DateTime.Now.AddDays(100);

[ VB.NET ]
Response.Cookies("CookieName").Value = "CookieValue"
' Cookies are temporally files, so you need to set how long cookie will be present on client hard disk before it is deleted
Response.Cookies("CookieName").Expires = Now.AddDays(100)

Đọc cookie như sau:

[ C# ]
// check if cookie exists
if(Request.Cookies["CookieName"] != null)
    CookieValue = Request.Cookies["CookieName"].Value;

[ VB.NET ]
' Check if cookie exists
If Not Request.Cookies("CookieName") Is Nothing Then
    CookieValue = Request.Cookies("CookieName").Value
End If

Toàn bộ code C#
   protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.Cookies["remember"] != null)
        {
            HttpCookie cookie = Request.Cookies.Get("UserNameAndPassword");
            txtname.Text = cookie.Values["UserName"].ToString();
            txtpassword.Text = cookie.Values["Password"].ToString();
        }
    }


    protected void WriteCookie()
    {
        if (ckbcookie.Checked == true)
        {
            HttpCookie cookie = new HttpCookie("remember", "yes");
            Response.Cookies.Add(cookie);
            cookie = new HttpCookie("UserNameAndPassword");
            cookie.Values.Add("UserName", txtname.Text.Trim());
            cookie.Values.Add("Password", txtpassword.Text.Trim());
            Response.Cookies.Add(cookie);
        }
    }

Tại hàm Login(Đăng nhập) gọi hàm WriteCookie() là okie

Một vài thành phần đáng quan tâm:

// sử lý dự kiện click nút đăng nhập
protected void bt_login_click(Object Src, EventArgs E)
{
if(tb_username.Text != ""){

// khai báo biến cookie
HttpCookie cookie_username = new HttpCookie("username",tb_username.Text);

// Gán thời gian sống của Cookie là 30 ngày
cookie_username.Expires = DateTime.Now.AddDays(30);

// Thêm Cookie
Response.Cookies.Add(cookie_username);

// làm tươi Response.Redirect("cookie.aspx");
}
}
// sử lý dự kiện click nút Xóa Cookie
protected void bt_delete_click(Object Src, EventArgs E)
{
// khai báo biến cookie
HttpCookie cookie_username = new HttpCookie("username","");
// Gán thời gian sống của Cookie là thời gian hiện tại
cookie_username.Expires = DateTime.Now;
// Thêm Cookie
Response.Cookies.Add(cookie_username);
// làm tươi
Response.Redirect("cookie.aspx");
}
Bookmark and Share

0 comments:

Post a Comment

Next previous home

Cộng đồng yêu thiết kế Việt Nam Thiet ke website, danang