Giải pháp SESSION TIMEOUT trong ASP.NET

Giải pháp SESSION TIMEOUT trong ASP.NET

1. SESSION TIMEOUT LÀ GÌ?

Là khoảng thời gian lớn nhất có thể giữa hai lần user request lên server mà session của user chưa bị hủy. Nói một cách đơn giản hơn, giả sử giá trị timeout này là 30′, thì cứ trong 30′, nếu user không gửi một request nào lên server thì session của user đó sẽ không còn hiệu lực.

Trong ASP.NET, session timeout mặc định là 20′. Có nhiều cách để thay đổi giá trị này, đơn giản nhất là thêm một dòng trongweb.config

<sessionState timeout="30"></sessionState>

2. ĐẶT TIMEOUT BAO NHIÊU LÀ HỢP LÝ?

Giá trị mặc định của nó là 20′, tuy nhiên trong một số trường hợp bạn muốn session tồn tại lâu hơn. Ví dụ một ứng dụng web cho phép người dùng soạn thảo nội dung trực tiếp trên trình duyệt. Bạn không muốn session kết thúc trước khi người dùng soạn thảo xong văn bản, vì thế bạn thiết lập timeout bằng một số rất lớn. Điều này không thực sự ổn vì nó sẽ tốn rất nhiều bộ nhớ của server dành cho session của những người dùng không còn trên website của bạn.

3. HEART BEAT PATTERN

Có một giải pháp cho vấn đề này: Thiết lập một giá trị session timeout nhỏ. Đồng thời, phía client sẽ “âm thầm” gửi các request nhỏ, thường xuyên đến server để báo cho server biết nó vẫn còn “sống”. Do đó bạn sẽ không bị tốn bộ nhớ một cách vô ích cho session của những người dùng không còn trên trang. Phương pháp này được biết dưới cái tên Heartbeat design pattern.

Tôi thực hiện điều này trong ASP.NET một cách đơn giản như sau:

Thiết lập một giá trị nhỏ cho session timeout (giả sử là 5′)

<sessionState timeout="5"></sessionState>

Tạo trang KeepAlive.ashx để nhận request thường xuyên từ client. Trang này không cần làm gì cũng được.

Thêm đoạn code javascript sau vào trang bạn muốn thực hiện. Tốt nhất là đặt chúng trong các trang master page

function heartBeat() {
    $.get("KeepAlive.ashx?", function (data) {});
}

$(function () {
    setInterval("heartBeat()", 1000 * 30); // 30s gửi request một lần
});
Bạn thấy bài viết này như thế nào?: 
Average: 10 (1 vote)
Ảnh của Tommy Tran

Tommy Tran owner Express Magazine

Drupal Developer having 9+ year experience, implementation and having strong knowledge of technical specifications, workflow development. Ability to perform effectively and efficiently in team and individually. Always enthusiastic and interseted to study new technologies

  • Skype ID: tthanhthuy
  • Phone/Zalo: (+84) 944 225 212
  • WhatsApp: (+84) 944 225 212
  • Line Messenger: (+84) 944 225 212
  • Email: asaleotestf@gmail.com
  • Telegram Messenger: https:/t.me/tommytran0401

Quảng cáo việc làm

 

Thích hợp các bạn nữ mảng thợ may làm việc tại nước NGA

Đơn hàng Tuyển dụng 100 Thợ may đi Nga(đợt 1 tháng 3.2021, đợt 2 tháng 5.2021). Lương thực lãnh 800 USD, bao ăn ở, vé máy bay và visa, phí xuất cảnh(1800 USD)trả khi đi làm có lương. Bạn có thể liên hệ CÔNG TY qua Phone/Zalo: (+84) 944 225 212. Công ty sẽ tư vấn cho bạn.

Xem chi tiết: >>> https://bit.ly/3o9NOfR

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
Samsung Announce Galaxy Y and Y Pro Android Smartphones

Samsung Announce Galaxy Y and Y Pro Android Smartphones

In line with its recently announced naming strategy, Samsung has revealed two entry-level Android smartphones, the Galaxy Y and the Galaxy Pro.

Google định nghĩa lại internal vs. external backlinks

Google định nghĩa lại internal vs. external backlinks

Vào ngày cuối cùng của tháng 8 vừa qua, Google chính thức thông báo về việc thiết lập lại cấu trúc liên kết nội (Internal Link) và liên kết ngoại (External Link).

SEO mũ đen, mũ trắng, mũ xám là thế nào?

SEO mũ đen, mũ trắng, mũ xám là thế nào?

Sự khác nhau giữa kỹ thuật mũ đen và mũ trắng trong SEO là như thế nào?