• Thời gian sống của session có thể thiết lập thông qua web.config (đơn vị là phút)
• Session có thể làm việc mà không cần cookie
• Trong trường này Session ID lưu trữ trong URL <configuration> <system.web> <sessionState timeout="10" /> </system.web> </configuration> <configuration> <system.web> <sessionState timeout="10" /> </system.web> </configuration> <sessionState cookieless="true" /> <sessionState cookieless="true" />
http://server/(h44a1e55c0breu552yrecobl)/page.aspx http://server/(h44a1e55c0breu552yrecobl)/page.aspx
Session
Phương thức
Abandon(): 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.
Remove(“SessionName”): xoá dữ liệu trên biến “VarSession”
Session
Ví dụ: Tạo trang (Page) hoặc User Control là Login.aspx Thiết kế giao diện như sau:
Session
Khởi tạo và Huỷ thông tin đăng nhập của người dùng trong Session
void Session_Start(object sender, EventArgs e) {
// Tăng số khách viếng khi có 1 phiên làm việc của
user
Application["SoKhachVieng"] =
(int)Application["SoKhachVieng"] + 1;
// Thiết lập thời gian TimeOut cho mọi phiên là 30
phút
Session.Timeout = 30;
// Đặt trạng thái ban đầu của user là chưa đăng
nhập
Session["LOGIN_OK"] = false; }
protected void btnLogin_Click(object sender, EventArgs e) {
if (Authority(txtUserName.Text, txtPassword.Text)) {
// Lưu thông tin đăng nhập thành công vào Session
Session["LOGIN_OK"] = true;
// Ẩn chức năng Login
panelLogin.Visible = false;
// Hiển thị chức năng logout và lời chào mừng
LblGreeting.Text = "Chào mừng bạn " +
txtUserName.Text + " đã đăng nhập website!"; }
else {
// Lưu thông tin đăng nhập thất bại vào Session Session["LOGIN_OK"] = false;
} } }
Session
protected bool Authority(string user, string pwd) {
if (user == "admin" && pwd == "12345") {
return true;
}
return false;
Cookie
• Là mẫu tin nhỏ (dạng chuỗi) dùng để lưu trữ thông tin người dùng trên máy của client (trong bộ nhớ hoặc file text nhỏ).
• Lifetime được thiết lập bởi người lập trình, được sử dụng trong nhiều trang và trong các lần visit site
• Phạm vi toàn bộ ứng dụng .NET
• Không bảo mật, do toàn bộ dữ liệu được gởi cho client. Cookie có thể modify dễ dàng.
• Tương tự như view state, hạn chế chỉ sử dụng dữ liệu nhỏ
Cookie