Chủ Nhật, 8 tháng 7, 2012

Tìm hiểu về cookie


Cookie là gì?
Cookie thường là một file text nhỏ được lưu trong máy của người dùng. Nó lưu trữ một số thông tin về người dùng như thông tin đăng nhập, các lựu chọn cá nhân hóa… Cookie được sinh ra khi bạn dùng trình duyệt để vào một trang web mà sử dụng cookie để lưu lại thông tin, trạng thái hiện tại của bạn.
Phân loại Cookie
Cookie được chia làm 2 loại dựa theo tính chất của nó.
- Session cookie: temporary cookie, non-persist cookie, transient cookie là những tên gọi khác của nó. Loại cookie này được lưu trữ trong bộ nhớ tạm thời và được hủy ngay sau khi trình duyệt close. Session cookie thường được dùng để lưu trữ Session ID.
- Persistent cookie: hay còn gọi là permanent cookie, stored cookie. Chúng có thời gian sống (expiry date) và được lưu trữ trên máy người dùng đến khi thời gian sống kết thúc hoặc bị xóa bởi người dùng.
Ưu điểm của Cookie
- Truy cập nhanh chóng (do lưu trữ trên máy client)
- Dễ dàng duy trì.
Nhược điểm của Cookie
- Độ bảo mật không cao (do lưu trữ dạng plain-text trên máy client)
- Người dùng có toàn quyền thao tác với file cookie.
Khi nào nên sử dụng Cookie
Dựa vào những ưu và nhược điểm của Cookie, bạn có thể thấy chúng ta chỉ nên sử dụng cookie để lưu những thông tin không yêu cầu bảo mật cao, và được sử dụng trong suốt phiên làm việc.
Các tạo Cookie trong ASP.NET
Để tạo một Cookie trong ASP.NET, chúng ta thường sử dụng đối tượng HttpCookie và Response. Ví dụ:
 
 
 
 
HttpCookie userInfo = new HttpCookie("userInfo");
userInfo["Username"] = "CodeBlue";
userInfo.Expires.Add(new TimeSpan(0, 1, 0));
Response.Cookies.Add(userInfo);
Các lấy giá trị của Cookie trong ASP.NET
Để lấy và sử dụng giá trị được lưu trong Cookie, chúng ta sử dụng đối tượng Request. Ví dụ:
 
 
 
 
 
HttpCookie userInfo = Request.Cookies["userInfo"];
if (userInfo != null)
{
     string userName = userInfo["UserName"].ToString();
}
Cách xóa Cookie trong ASP.NET
Mặc định, Cookie sẽ tự động được xóa sau khi hết thời gian sống (expiry date). Bạn có thể xóa ngay cookie bằng cách set thời gian expire của Cookie về trước ngày hiện tại. Ví dụ:
1
myCookie.Expires = DateTime.Now.AddDays(-1d);

Không có nhận xét nào: