ما هو أفضل حل بديل لمهلة مصادقة نماذج ASP.NET عند استخدام تعيين أحرف البدل؟

StackOverflow https://stackoverflow.com/questions/57739

سؤال

يعمل فريقي على موقع ويب قديم رديء ولا تزال معظم الصفحات كلاسيكية من نوع ASP.ومع ذلك، فقد انتقلنا مؤخرًا إلى مصادقة النماذج باستخدام ASP.NET وتعيين أحرف البدل.كل شيء يعمل بشكل جيد بشكل مدهش باستثناء شيء واحد:تنتهي مهلة المستخدمين الذين قاموا بتسجيل الدخول بسرعة كبيرة جدًا.بعد البحث في السجلات، يبدو أن الأشخاص ينتهيون بالمهلة بعد 20 دقيقة بالضبط (وهي المهلة المحددة بسبب عدم النشاط).

لذا، فإن فرضيتنا هي أن صفحات ASP الكلاسيكية لا تتعطل أي آلية موجودة في إطار عمل مصادقة النماذج التي تعيد ضبط مؤقت عدم النشاط.لقد بحثت في Google وقرأت أيضًا منشور تعيين أحرف البدل بواسطة Great Gu ولكن ما زلت لا أستطيع العثور على أي شخص آخر يواجه هذه المشكلة.لذا، 1) هل سبق لك أن رأيت هذه المشكلة؟و2) ما هو الحل الأفضل؟(بخلاف وضع إطار مخفي يدويًا في كل صفحة ASP غير مرغوب فيها تقوم بتحميل صفحة .NET غبية في الخلفية)

تحديث: انزلاق انتهاء الصلاحية تم ضبطه على حقيقي

أيضًا:لا يمكننا استخدام الجلسات الدائمة لأننا نحتاج إلى انتهاء مهلة التطبيق بعد 20 دقيقة من عدم النشاط.كما أن هذا الموقع الرهيب تمت كتابته بحيث يتم تخزين الواجهة عادةً في الصفحة.لا يوجد جزء بسيط من كود الواجهة الذي يمكنني إدخال JavaScript إليه.لقد حاولنا وضع بعض ملفات js في ملف التضمين الذي تم استدعاؤه بواسطة حوالي 80% من صفحاتنا ولكنه تسبب في بعض المشكلات الباطنية في المخازن المؤقتة لتنزيل الملفات، لذا قد نضطر إلى تجربة طريقة مختلفة.شكرًا.

هل كانت مفيدة؟

المحلول

إنشاء جلسة دائمة.

في الأساس، ينتهي بك الأمر إلى إصدار بعض JavaScript وعلامة صورة في صفحتك الرئيسية أو عناصر تحكم مستخدمي التنقل (أيًا كان ما تستخدمه للتنقل المتسق).يقوم JavaScript هذا في بعض الفواصل الزمنية بتغيير مصدر علامة الصورة إلى نقطة نهاية معالج http (بعض .aspx، .ashx) والتي تقوم بإرجاع صورة gif واضحة بحجم 1 × 1 بيكسل كاستجابة للصورة.يضمن الطلب المستمر أن الصفحات الخاملة ستبقي الجلسة حية.

طالما أن نافذة المتصفح مفتوحة على صفحتك، فلن تنتهي مهلة جلسة ASP.NET الخاصة بك أبدًا.

غالبًا ما تضيف JavaScript رقمًا عشوائيًا للطلب حتى لا يقوم المتصفح بتخزين الطلب مؤقتًا.

تتوفر إرشادات لائقة هنا.

نصائح أخرى

أفترض أنك قمت بإنشاء ملف تعريف الارتباط يدويًا، وفي هذه الحالة من المحتمل أن تتجاوز قيمة المهلة في التعليمات البرمجية قيمة المهلة في التكوين.

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

إذا كان يجب عليك إنشاء ملف تعريف الارتباط يدويًا، فتأكد من أن المهلة التي تستخدمها تقرأ فعليًا قيمة المهلة التي قمت بتعيينها في ملف التكوين وأن انتهاء الصلاحية المنزلق مضبوط على "صحيح" (وهو ما قلته).

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top