Lưu giữ Session của bạn với JQuery và ASP.NET

Khi bạn làm việc với Session trong ASP.NET điều đầu tiên bạn cần quan tâm đó là làm sao để Session không bị Timeout, mặc định thời gian timeout của 1 Session được cấu hình trong file Web.Config và có thời gian là 20 phút.

Ví dụ khi khách hàng đăng nhập vào hệ thống của bạn nếu Session timeout điều đó có nghĩa với khách hàng sẽ phải đăng nhập lại, điều này thường gây khó chịu cho một số người.
Để tránh điều này chúng ta sẽ sử dụng JQuery Ajax để cách 10s chúng ta sẽ lấy lại Session cho người dùng thông qua file Generic Handler (ASHX)
Đầu tiên bạn hãy tạo 1 file Generic Handler (ASHX) có tên là KeepSessionAlive.ashx
Code như sau:

public class KeepSessionAlive : IHttpHandler ,IRequiresSessionState
{

public void ProcessRequest(HttpContext context)
{
//khoi tao lai Session
context.Session[“KeepSessionAlive”] = DateTime.Now;
}

public bool IsReusable
{
get
{
return false;
}
}
}

Using thêm

using System.Web.SessionState;

trong class này bắt buộc chúng ta phải kế thừa thêm từ Interface IRequiresSessionState bởi nếu không khi biên dịch bạn sẽ gặp lỗi ở context.Session
Tiếp theo bạn vào file Default.aspx viết Javascript như sau:

$(function() {
setInterval(KeepSessionAlive, 10000);
});

function KeepSessionAlive() {
$.post(“/KeepSessionAlive.ashx”, null, function() {
$(“#result”).append(“

Session is alive and kicking!

“);
});
}

Will my session die?

Khi trang web được load lên tôi sẽ setInterval cho hàm KeepSessionAlive() là 10s 1 lần có nghĩa cứ 10s tôi sẽ gọi lại hàm KeepSessionAlive().
Trong hàm KeepSessionAlive() tôi sẽ post lên file KeepSessionAlive.ashx để khởi tạo lại Session.
Download

Về tieuyeuit
Lập trình viên Asp.net Tôi chia sẻ một,bạn chia sẻ một và chúng ta có rất nhiều!

One Response to Lưu giữ Session của bạn với JQuery và ASP.NET

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s

%d bloggers like this: