Đối tượng Cookies và Session

Một phần của tài liệu ĐỀ CƯƠNG BÀI GIẢNG LẬP TRÌNH ASP.NET (TÀI LIỆU DÙNG CHO SINH VIÊN ĐẠI HỌC CÔNG NGHỆ THÔNG TIN) (Trang 41)

D) CÂU HỎI, BÀI TẬP, NỘI DUNG ÔN TẬP VÀ THẢO LUẬN

5.3.Đối tượng Cookies và Session

5.3.1. Đối tượng Cookies

Có lẽ chúng ta cũng đã từng đăng ký là một thành viên của một trang web hay một forum nào đó, và chắc cũng không ít lần ngạc nhiên khi chúng ta vừa yêu cầu đến một trang web hay forum mà chúng ta đã đăng ký trước đó, trang web nhận ngay ra, chúng ta chính là thành viên của họ và gởi ngay lời chào, chẳng hạn: Chào Nguyễn Văn An.

Những thông tin của chúng ta khi đăng nhập hay khi đăng ký được lưu ngay chính tại máy của chúng ta. Những thông tin này được Web Server lưu tại máy Client được gọi là Cookies.

Không giống như đối tượng Session, đối tượng Cookies cũng được dùng để lưu trữ thông tin của người dùng, tuy nhiên thông tin này được lưu ngay tại máy gởi yêu cầu đến Web Server.

Có thể xem một Cookies như một tập tin (với kích thước khá nhỏ) được Web Server lưu tại máy của người dùng. Mỗi lần có yêu cầu đến Web Server, những thông tin của Cookies cũng sẽ được gởi theo về Server.

*) Thêm Cookies

Response.Cookies.Add(<HttpCookie>)

Ví dụ: Tạo ra Cookies có tên là TenDangNhap lưu trữ tên đăng nhập của người dùng. Thông tin này sẽ được lưu trữ trên Cookies 15 ngày kể từ ngày hiện hành trên Web Server.

HttpCookie ck = new HttpCookie("TenDangNhap");

ck.Value = txtTenDangNhap.Text;

ck.Expires = DateTime.Now.AddDays(15); Response.Cookies.Add(ck); *) Lấy giá trị từ Cookies

HttpCookie ck = Request.Cookies["TenDangNhap"]; string s = ck.Value;

5.3.2. Đối tượng Session

Đối tượng Session được dùng để lưu trữ thông tin của người dùng trong ứng dụng. Thông tin được lưu trữ trong Session là của một người dùng trong một phiên làm việc cụ thể. Web Server sẽ tự động tạo một đối tượng Session cho mỗi người dùng mới kết nối vào ứng dụng và tự động hủy chúng nếu người dùng còn không làm việc với ứng dụng nữa.

Tuy nhiên, không giống như đối tượng Application, đối tượng Session không thể chia sẻ thông tin giữa những lần làm việc của người dùng, nó chỉ có thể cung cấp, trao đổi thông tin cho các trang trong lần làm việc tương ứng.

Trong ứng dụng web, đối tượng Session giữ vai trò khá quan trọng. Do sử dụng giao thức HTTP, một giao thức phi trạng thái, Web Server hoàn toàn không ghi nhớ những gì giữa những lần yêu cầu của Client. Đối tượng Session tỏ ra khá hữu hiệu trong việc thực hiện “lưu vết và

quản lý thông tin của người dùng”. *) Thuộc tính & Phương thức

• Thuộc tính Timeout: Qui định khoảng thời gian (tính bằng phút) mà Web Server duy trì đối tượng Session nếu người dùng không gửi yêu cầu nào về lại Server. Giá trị mặc định của thuộc tính này là 20. Nếu không có yêu cầu nào kể từ lần yêu cầu sau cùng một khoảng thời gian là <Timeout> phút, đối tượng Session mà Web server cấp cho lần làm việc đó sẽ tự động được giải phóng. Những yêu cầu sau đó được Web server coi như là một người dùng mới, và đương nhiên sẽ được cấp một đối tượng Session mới.

• Phương thức Abandon: Như chúng ta đã biết, trong khoảng thời gian <Timeout> phút kể từ lần yêu cầu sau cùng của Client, đối tượng Session vẫn được duy trì dù cho không có sự tương tác nào của Client. Điều này đồng nghĩa với việc Web server phải sử dụng một vùng nhớ để duy trì đối tượng Session trong một khoảng thời gian tương ứng. Phương thức Abandon của đối tượng Session sẽ giải phóng vùng nhớ được dùng để duy trì đối tượng Session trên Web Server ngay khi được gọi thực hiện. Những yêu cầu sau đó được Web server coi như là một người dùng mới.

*) Sử dụng biến toàn cục với Session

• Tạo biến Session: Session["Tên biến"] = <giá trị>

• Lấy giá trị từ biến Session: <biến> = Session["Tên biến"]

Một phần của tài liệu ĐỀ CƯƠNG BÀI GIẢNG LẬP TRÌNH ASP.NET (TÀI LIỆU DÙNG CHO SINH VIÊN ĐẠI HỌC CÔNG NGHỆ THÔNG TIN) (Trang 41)