Đối tượng cookies và session trong ASP.Net

Nói về học thiết kế web động nói chung và thiết kế web ASP.Net nói riêng không thể không nói đến hai đối tượng cookies và session này. Hôm nay mình sẽ cùng các bạn tìm hiểu sơ lược về cách dùng và ứng ựng dụng các đối tượng này vào trong web.

Nói chung đây đều là các biến môi trường được tạo ra để sử dụng trong quá trình thực hiện ứng dụng web, nó có thể tồn tại ở Server hay ở clien và có thể tự tạo ra, biến mất tùy vào cách mà chúng ta cài đặt cho nó.

1. Sử dụng đối tượng cookies trong ASP.Net

Bạn đã từng sử dụng diễn đàn và đăng ký thành viên và đang nhập, sau lần đó thì mỗi lần sau vào trang diễn đàn đó tự nhiên mình không cần đăng nhập nữa mà vẫn xuất ra thông báo chào mình. Đó chính là một ứng dụng hay của đối tượng cookies.

Đây là một tiện ích ở máy clien, nó được hiểu như một tập tin nhỏ với các thông tin bạn đã khai báo lúc đầu, khi bạn lướt web có yêu cầu gửi đến Server thì mặc nhiên các thông tin đó cũng gửi lên server lun đỡ mất công đăng nhập nữa.

Đối tượng cookies này tồn tại trên trình duyệt ở một thời gian nhất định tùy theo mình cài đặt, sau thời gian đó thì bạn phải khởi tạo lại biến đó mới sử dụng được nữa.

Đối tượng cookies trong ASP.Net

Đối tượng cookies trong ASP.Net

Làm việc với cookies trong ASP.Net

Bạn thêm cookies theo cú pháp sau:

<!--
Response.Cookies.Add(<HttpCookie>);
-->

Ví dụ:

<!--
        HttpCookie ck = new HttpCookie("TenDangNhap");
        ck.Value = txtTenDangNhap.Text;
        ck.Expires = DateTime.Now.AddDays(15);
        Response.Cookies.Add(ck);
-->

Cách khai báo trên có ý nghĩa là: tạo ra 1 Cookies có tên là TenDangNhap lấy giá trị từ text box txtTenDangNhap lưu trữ trên máy người dùng 15 ngày kể từ ngày tạo ra.

Lấy giá trị từ Cookies
<!--
        HttpCookie ck = Request.Cookies("TenDangNhap");
        string s = ck.Value;
-->

Trường hợp biến Cookies chưa tạo hay đã hết hạn thì giá trị lấy sẽ là NULL.

2. Đối tượng Session trong ASP.Net

Đối tượng Session là biến được tạo ra ở mỗi phiên làm việc của một người dùng, vậy là mỗi người đăng nhập vào sẽ có một session riêng và phiên làm việc của họ cũng có biến session riêng và được hủy khi phiên làm việc đó kết thúc và họ logout.

Session là một trong những biến quan trọng nhất trong ứng dung web, nó là riêng biệt với các đối tượng người dùng tuy nhiên biến này được tạo ra sẽ sử dụng ở tất cả mọi trang trong website và lưu vết của người dùng đó đã làm nhưng gì trên website mình.

Ví dụ: WEB bán hàng khi khách hàng chọn hàng vào giỏ ở trang chủ, và sau đó khách tham quan các trang sản phẩm khác vẫn add được hàng vào giỏ hàng đó số lượng tăng lên… và giỏ đó hủy khi bấm hủy giỏ hay thanh toán.

Cũng như ở Cookies, Session cũng có thời gian nếu quá thời gian đó session sẽ tự hủy đó người ta gọi là thuộc tính time out.

Session trong ASP.Net

Session trong ASP.Net

Như đã nói Session là biến hoạt động trên Server nên tốn bộ nhớ, Khi không có tác động từ clien để duy trì sự tồn tại của biến Session thì Session vẫn tồn tại nên rất tồn cùng như server do đó tính tự hủy khi hết time sẽ hoạt động nhờ vào một phương thức người ta gọi đó làm phương thức Abandon.

Sử dụng biến toàn cục Session trong ASP.net

Cách khai báo biến Session:

<!--
     Session["Tên Biến"] = Giá trị;
-->

Lấy giá trị biến session:

<!--
     <Biến> = Session["Tên Biến"];
-->

Ví dụ bạn tạo một trang đăng nhập đơn giản sau khi submit các thông tin đăng nhập sẽ gửi các thông tin đó qua trang khác và hiển thị lên.

Giả sử mình tạo một trang đăng nhập: dangnhap.aspx với giao diện như sau:

<!--
     Tên: <asp:TextBox ID="txtTen" runat="server"></asp:TextBox>
     Pass: <asp:TextBox ID="txtPass" runat="server" TextMode="Password"></asp:TextBox>
     <asp:Button ID="Submit" runat="server" onclick="Submit_Click" Text="Gửi" />
-->

Trong nút gủi bạn viết đoạn code sau:

<!--
    protected void Submit_Click(object sender, EventArgs e)
    {
        Session["ten"] = txtTen.Text;
        Session["pass"] = txtPass.Text;
        Response.Redirect("Nhan.aspx");
    }
-->

Ở đây khai báo hai biến Session một là lấy tên, hai là lấy Pass và tiến hành gửi qua trang Nhận: Nhan.aspx

Ở trang Nhan.aspx bạn lấy thông tin như sau:

<!--
protected void Page_Load(object sender, EventArgs e)
    {
        string ten = Session["ten"].ToString();
        string pass = Session["pass"].ToString();
        Response.Write("Chào bạn: " + ten + "<br />Pass: "+pass);
    }
-->

Sau đó bạn chạy trang Đăng nhập lên nhập thông tin và gửi sẽ nhận được thông tin ở trang nhận.

Đối tương Session trong ASP.Net

Đối tương Session trong ASP.Net

Kết luận: Mình đã trình bày xong hai phần cơ bản là cookies và session trong web asp.net, hai phần này rất quan trọng và cần thiết! Bài viết mang tính giới thiệu các bạn tự mò thêm nha! Chúc thành công!

VN:F [1.9.22_1171]
Rating: 9.4/10 (19 votes cast)
Đối tượng cookies và session trong ASP.Net, 9.4 out of 10 based on 19 ratings
Share This