كيفية التقاط نهاية الدورة عند الضغط على زر العنوان title asp.net c #

لدي بعض الأسئلة حول تطبيق asp.net على شبكة الإنترنت. تطبيق الويب الذي يستخدم حالة جلسة عمل ملقم SQL. يمكن لحدث الخروج إزالة الجلسة ولكن اضغط على زر إغلاق شريط العنوان وتريد إزالة الجلسة. الأحداث التي يمكن السيطرة عليها عند الضغط على زر إغلاق شريط العنوان. قرأت عن الحدث session_end يمكن التقاط عندما اضغط على زر إغلاق شريط العنوان. ولكن لا يمكن أن تنشأ حدث session_end باستخدام حالة جلسة عمل ملقم SQL. كيف يمكن للقبض؟

0

1 إجابة

لا يؤدي إغلاق المتصفح إلى إنهاء الجلسة على الخادم ، ولا يستطيع الخادم معرفة الفرق بين المتصفح المفتوح أو المغلق ، بل يتلقى ببساطة طلبًا ، ثم يرسل ردًا ويجلس هناك في انتظار طلب آخر. بعد انقضاء فترة زمنية معينة بدون أي طلبات ، ستنتهي الجلسة وسيبدأ الحدث session_end.

إذا كنت ترغب في إنهاء الجلسة ، يجب أن يكون لديك نوع ما من طلب مشاركة ajax مرة أخرى إلى الخادم عند إغلاق المتصفح لكي يعرف الخادم إنهاء الجلسة.

تصحيح

يمكنك فعل شيء مثل هذا باستخدام jQuery

$(window).unload(function() {
  $.post('someurl');
});

استبدل someurl بعنوان url الخاص بخدمة الويب أو أداة التحكم في المعالج أو mvc أو ما شابه ذلك الذي يخبر الخادم بأن المتصفح قد تم إغلاقه.

ثم جانب الخادم تفعله فقط

Session.Abandon();
0
وأضاف
نعم ، اريد ان اعرف بسيط
وأضاف المؤلف Stuart, مصدر