Khi làm việc với ứng dụng web, đặc biệt là website, nhiều bạn sẽ hỏi cookies là gì, nó có tác dụng gì, và cách thức hoạt động ra sao? bài viết này sẽ nói rõ những vấn đề đó.
I.Giới thiệu
Cookies cũng được gọi bằng nhiều tên HTTP Cookie, Cookie web, Browser cookie, Session Cookie…Cookielà một trong nhiều cách để lưu trữ dữ liệu về khách truy cập website trong thời gian máy chủ và trình duyệt không được kết nối. Cookie thường được sử dụng để nhớ user cho các lần ghé thăm trang web. Thực tế, cookie là một văn bản nhỏ được gửi bởi máy chủ web và được lưu trữ bởi trình duyệt của client.
I.Giới thiệu
Cookies cũng được gọi bằng nhiều tên HTTP Cookie, Cookie web, Browser cookie, Session Cookie…Cookielà một trong nhiều cách để lưu trữ dữ liệu về khách truy cập website trong thời gian máy chủ và trình duyệt không được kết nối. Cookie thường được sử dụng để nhớ user cho các lần ghé thăm trang web. Thực tế, cookie là một văn bản nhỏ được gửi bởi máy chủ web và được lưu trữ bởi trình duyệt của client.
II. Sử dụng cookie thế nào?
Cookie có thể dùng để nhận dạng, xác thực một user session, sở thích người dùng, giỏ hàng, nội dung mua sắm hoặc bất cứ điều gì khác. Cookie cũng có thể sử dụng cho việc truyền dữ liệu từ trang này sang trang khác.
III. Cookie có thực sự an toàn?
Vâng, câu hỏi này không có câu trả lời cụ thể là Có hoặc Không. Cookie có thể bị đánh cắp bởi tin tặc để truy cập vào các tài khoản web của nạn nhân. Cookie không thể mang virus và không thể tự cài đặt phần mềm độc hại trên máy tính chủ, tuy nhiên chúng có thể được sử dụng bởi phần mềm gián điệp để theo dõi hoạt động duyệt web của người dùng.
IV. Sử dụng cookie trong asp.net
1. Tạo/Viết cookies
Có rất nhiều cách để tạo hoặc viết cookies. Tôi sẽ trình bày 1 trong số các cách phổ biến:
Cách 1: Sử dụng lớp HttpCookies
1
2
3
4
5
| //First Way HttpCookie StudentCookies = new HttpCookie( "StudentCookies" ); StudentCookies.Value = TextBox1.Text; StudentCookies.Expires = DateTime.Now.AddHours(1); Response.Cookies.Add(StudentCookies); |
Cách 2: Sử dụng Response direcly
1
2
3
| //Second Way Response.Cookies[ "StudentCookies" ].Value = TextBox1.Text; Response.Cookies[ "StudentCookies" ].Expires = DateTime.Now.AddDays(1); |
Cách 3: Nhiều giá trị trong cùng một cookies
1
2
3
4
5
6
7
| //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); |
2. Đọc/lấy giá trị cookies
Dành cho cách 1:
Dành cho cách 1:
1
| string roll = Request.Cookies[ "StudentCookies" ].Value; //For First Way |
Dành cho cách 2:
1
| string roll = Request.Cookies[ "StudentCookies" ].Value; //For Second Way |
Dành cho cách 3:
1
2
3
4
5
6
7
8
| //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; |
3. Delete một cookies
Chúng ta có nhiều cách để tạo ra cookies nhưng sử dụng cách dưới đây để delete một cookie
Chúng ta có nhiều cách để tạo ra cookies nhưng sử dụng cách dưới đây để delete một cookie
1
2
3
4
5
| if (Request.Cookies[ "StudentCookies" ] != null) { Response.Cookies[ "StudentCookies" ].Expires = DateTime.Now.AddDays(-1); Response.Redirect( "Result.aspx" ); //to refresh the page } |
V. Tìm hiểu về lớp HttpCookies
Chúng ta không cần phải sử dụng namespace cho HttpCookies vì nó có sẵn trong namespace System.Web. Lớp HttpCookies cho phép chúng ta làm việc với Cookies mà không cần phải Response và Request
Lớp HttpCookies bao gồm các thuộc tính cơ bản như
Chúng ta không cần phải sử dụng namespace cho HttpCookies vì nó có sẵn trong namespace System.Web. Lớp HttpCookies cho phép chúng ta làm việc với Cookies mà không cần phải Response và Request
Lớp HttpCookies bao gồm các thuộc tính cơ bản như
- Domain: Tên miền của cookie
- Expires: Chứa thời gian hết hạn của cookie
- Haskey: có giá trị true nếu cookie có chứa khóa
- Name: Tên của cookie
- Path: Đường dẫn của cookie
- Secure: Có giá trị true nếu cookie được kết nối an toàn
- Value: Giá trị của cookie
- Values:
VI. Hạn chế của cookie
- Cookie có những hạn chế sau đây:
- Kích thước bị giới hạn đến 4096byte.
- Trên một phiên làm việc, chỉ có 20 cookie được hoạt động, nếu có cookie mới, thì cookie cũ nhất sẽ bị delete
- Người dùng cuối có thể dừng việc chấp nhận sử dụng cookie trên trình duyệt, do đó khi thao tác cần nhắc nhở user kích hoạt việc dùng cookie
Đôi khi, người dùng vô hiệu hóa các tập tin cookie hoặc đôi khi trình duyệt không nhận các cookie. Trong trường hợp này cần phải kiểm tra trình duyệt của người sử dụng tại trang chủ của trang web và hiển thị thông điệp phù hợp để điều hướng người dùng tới trang kích hoạt lại cookie. Đoạn mã sau sẽ kiểm tra xem người sử dụng trình duyệt có hỗ trợ cookie hay không.
1
2
3
4
5
6
7
8
9
10
11
12
13
| protected void Page_Load(object sender, EventArgs e) { if (Request.Browser.Cookies) { //supports the cookies } else { //not supports the cookies //redirect user on specific page //for this or show messages } } |
Comments[ 0 ]
Đăng nhận xét