يتم استخدام كائن جلسة تقنية ASP (صفحات الخادم النشط) لتخزين معلومات خاصة للمستخدمين أثناء المحادثات. يمكن مشاركة المتغيرات والكائنات المحددة في كائن الجلسة للمستخدم الحالي بين الصفحات ، ولكن لا يمكن الوصول إليها من قبل المستخدمين الآخرين في التطبيق. معلومات الحالة.
يحتوي كائن الجلسة على خاصية مهمة للغاية: المهلة ، والتي يتم استخدامها لتعيين الوقت الذي يمكن أن يظل فيه كائن الجلسة غير نشط قبل إصدار مورد الجلسة (القيمة الافتراضية 20 دقيقة). عندما يتم استنفاد القيمة الزمنية التي تحددها خاصية المهلة ، سيتم إصدار مورد الجلسة. قم بتدمير كائن الجلسة من خلال سمة المهلة ، وتجنب إنشاء كائن الجلسة في الخادم دون قيود وحماية موارد الخادم. ومع ذلك ، في تطوير الشبكة الفعلية ، غالبًا ما يتم مواجهة عملية التطبيق لا يمكن إكمالها بشكل طبيعي بسبب فشل كائن الجلسة وفقدان معلومات حالة المستخدم.
على الرغم من أن استراتيجية إطلاق الموارد باستخدام سمة المهلة هي لغرض حماية الخادم ، إلا أن الفشل غير المتوقع لكائن الجلسة أصبح عيبًا في تطوير التطبيقات. لذلك ، في تطوير التطبيق الفعلي ، يجب حل مشكلة فشل كائن الجلسة.
الحلول التقليدية
الحلول الحالية هي جميعها لاستخدام طرق من جانب الخادم لحل مشكلة فشل كائن الجلسة. تنقسم طرق العلاج النموذجية إلى فئتين: العلاج قبل الفشل والعلاج بعد الفشل.
تشير المعالجة قبل الفشل إلى النقل ومعالجة المتغيرات الأخرى قبل انتهاء صلاحية كائن الجلسة لمنع المشكلات قبل حدوثها. يتمثل الحل النموذجي في تعيين مؤقت في التطبيق ، وتشغيل الموقت قبل 5 دقائق من فشل كائن الجلسة ، ثم إعادة تعيين المتغيرات والكائنات المختلفة لكائن الجلسة. تضيف هذه الطريقة تحميل إضافي إلى الخادم لأنه يجب الحفاظ على المؤقت في الوقت الفعلي على جانب الخادم ويجب أن يكون البرنامج نشطًا طوال الجلسة.
تشير المعالجة بعد الفشل إلى دفع المستخدم للمعالجة فور انتهاء صلاحية كائن الجلسة. يتمثل الحل النموذجي في حفظ نقاط التوقف على جانب الخادم بعد فشل كائن الجلسة ، ومطالبة المستخدم بتسجيل الدخول مرة أخرى ومواصلة إكمال العمل. هذه الطريقة بسيطة في التنفيذ ، ولكن غالبًا ما يتم الشكوى والانتقاد من قبل المستخدمين النهائيين بسبب الاسترداد التلقائي غير المكتمل لنقاط التوقف وتعقيد عملية إعادة السد.
استجابةً لأوجه القصور في نوعين أعلاه من الحلول ، في ممارسة البرمجة ، يجمع المؤلف بين خصائص كائن ملف تعريف الارتباط ويستخدم طريقة الوصول إلى متغيرات مستوى الجلسة بشكل مشترك على العميل ، والتي لا تتجنب فقط الطلب الإضافي على الخادم الموارد ، ولكنها تحل أيضًا مشكلة مشكلة عدم استعادة نقاط التوقف تلقائيًا ، كما أنها تلغي أيضًا مشكلة تسجيل الدخول مرة أخرى.
حل جديد
كائن ملف تعريف الارتباط هو حزمة صغيرة من المعلومات التي تخزن البيانات حول المستخدم الحالي ، والتي يمكن تمريرها بين المتصفح وخادم الويب. في تطبيقات الويب ، توفر ملفات تعريف الارتباط آلية لتتبع وتسجيل كل موقع مستخدم. واحدة من أكثر الاستخدامات شيوعًا لملفات تعريف الارتباط هي توفير الوقت والتاريخ لآخر صفحة ويب ليتم زيارتها في تطبيق ويب أو عنوان URL المطلوب زيارته.
عادةً ما يتم تخزين كائنات ملفات تعريف الارتباط في دليل ملفات تعريف الارتباط الفرعية في دليل نظام Windows العميل كملفات. يمكن تخزين بيانات المعلومات المخزنة في كائن ملفات تعريف الارتباط لفترة طويلة ، لذلك يمكن نسخ متغيرات على مستوى الجلسة في كائن ملفات تعريف الارتباط. كائن ملفات تعريف الارتباط.
يحتوي كائن ملف تعريف الارتباط على الخصائص التالية:
● انتهاء صلاحية: اضبط التاريخ عند انتهاء صلاحية كائن ملف تعريف الارتباط ؛
● المجال: يحدد نقل كائن ملفات تعريف الارتباط كعضو محدده فقط سمة المجال ؛
● المسار: حدد مسار تسليم كائن ملف تعريف الارتباط ؛
● آمن: لتوضيح ما إذا كان كائن ملف تعريف الارتباط آمنًا ؛
● Haskeys: إرجاع ما إذا كان كائن ملف تعريف الارتباط يحتوي على قيم متعددة.
إذا لم يتم تعريف خاصية انتهاء صلاحية كائن ملفات تعريف الارتباط بشكل صريح ، فسيتم انتهاء صلاحية كائن ملفات تعريف الارتباط في نهاية جلسة المستخدم.
اقرأ وكتابة الكائنات من خلال جمع الطلبات وجمع الاستجابة في ASP. بناء الجملة لكتابة المتغيرات إلى كائن ملف تعريف الارتباط هو كما يلي:
استجابة. cookies (ملف تعريف الارتباط) [(مفتاح) |
عندما يكون ملف تعريف الارتباط هو اسم ملف ملفات تعريف الارتباط ، يشير المفتاح إلى عنصر القاموس ، والسمة هي طبيعة محددة لملف تعريف الارتباط ، والقيمة هي القيمة المخصصة لملف تعريف الارتباط. على سبيل المثال ، لإنشاء ملف تعريف ارتباط يسمى myhobby وتعيين قيمته إلى: كرة السلة ، استخدم بناء الجملة التالي:
<٪ response.cookies (myHobby) = كرة السلة ٪>
طريقة قراءة كائن ملف تعريف الارتباط على جهاز العميل هي كما يلي:
request.cookies (ملف تعريف الارتباط) [(مفتاح) | .Attribute]
من بينها ، ملف تعريف الارتباط هو اسم ملف تعريف الارتباط المطلوب ، والمفتاح هو ترجمة قيمة المفتاح الفرعي ، ويتم استخدام السمة للإشارة إلى سمة ملفات تعريف الارتباط. على سبيل المثال: لاستخراج المعلومات من ملف تعريف ارتباط يسمى MyHobby واكتب قيمته إلى الصفحة ، استخدم بناء الجملة التالي:
<٪ request.cookies (myHobby) ٪>
تجدر الإشارة إلى أنه لا يمكن كتابة رأس صفحة HTTP إلى كائن ملف تعريف الارتباط بعد إرسال صفحة HTTP إلى متصفح الطلب. بمعنى آخر ، لا يمكن إرسال معلومات ملفات تعريف الارتباط إلى المتصفح بعد إرسال أي معرف HTML إلى المتصفح.
تنفيذ محدد
فيما يلي تطبيق غرفة الدردشة يعتمد على تقنية ASP لتقديم كيفية التعامل مع مشكلة فشل كائن الجلسة المتغير.
● متغير مستوى الجلسة الأولي قبل تسجيل الدخول إلى المستخدم: اسم المستخدم (يستخدم لتخزين اسم مستخدم تسجيل الدخول).
<٪ جلسة (اسم المستخدم) = ٪>
// تهيئة كائن ملف تعريف الارتباط
<٪ reponse.cookies (اسم المستخدم) = ٪>
● عندما يقوم المستخدم بتسجيل الدخول ، قم بتعيين متغيرات مستوى الجلسة ونعود إلى كائن ملفات تعريف الارتباط العميل.
<٪ username = trim (request.for (اسم المستخدم)) ٪>
<٪ جلسة (اسم المستخدم) = اسم المستخدم ٪>
// احتياطي متغيرات مستوى الجلسة لكائن ملفات تعريف الارتباط العميل
<٪ response.cookies (اسم المستخدم) = اسم المستخدم ٪>
● عندما يتحدث المستخدم ، يتم قراءة متغير مستوى الجلسة.
<٪ اسم المستخدم = الجلسة (اسم المستخدم) ٪>
// إذا انتهت صلاحية المتغير ، فابحث في كائن ملفات تعريف الارتباط العميل
<٪ إذا اسم المستخدم = ثم ٪>
<٪ username = request.cookies (اسم المستخدم) ٪>
<٪ إذا اسم المستخدم = ثم ٪>
// إذا دخل المستخدم إلى غرفة الدردشة دون تسجيل الدخول ، فإن قيمة السمة لكائن ملف تعريف الارتباط فارغ. في هذا الوقت ، يُطلب من المستخدم أن يكون لديك خطأ وأن يلجأ إلى صفحة تسجيل الدخول إلى المستخدم
<٪ response.redirect error.html ٪>
<٪ آخر ٪>
// استعادة هذا المتغير على مستوى الجلسة من كائن ملف تعريف الارتباط
<٪ جلسة (اسم المستخدم) = اسم المستخدم ٪>
<٪ نهاية إذا ٪>
<٪ نهاية إذا ٪>
● عندما يخرج المستخدم من غرفة الدردشة ، قم بمسح كائن مستوى الجلسة وكائن ملفات تعريف الارتباط.
<٪ جلسة (اسم المستخدم) = ٪>
// امسح قيمة السمة لكائن ملف تعريف الارتباط لتجنب إدخال غرفة الدردشة دون تسجيل الدخول
<٪ reponse.cookies (اسم المستخدم) = ٪>
يتم تشغيل الكود أعلاه وتمريره في بيئة Windows NT 4.0 + IIS 4.0 + IE 5.0.
ملخص
طريقة الوصول إلى متغيرات مستوى الجلسة في العميل بسيطة وعملية ، ويمكنها تجنب مشاكل مثل التسجيل القسري من قبل المستخدمين.