تتم إعادة تعيين جلسة مهلة ASP.Net Inproc إذا تم الوصول إلى جلسة الهوية؟

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

  •  05-07-2019
  •  | 
  •  

سؤال

هنا أن inproc asp.net إعادة تعيين جلسة انها في كل مرة مهلة يتم الوصول إليه (القراءة والكتابة). سؤالي هو، إذا كانت مهلة تتم إعادة تعيين أيضا إذا قرأت فقط جلسة الهوية؟

مثال: تم تعيين مهلة الجلسة لمدة 20 دقيقة. بعد 15 دقيقة. من الخمول I تحميل الصفحة وقراءة Session.SessionID. والدورة لا تزال موجودة بعد 10 دقيقة أكثر.؟

وسؤال واحد: هل يهم إذا كان يتم تحميل الصفحة مباشرة أو عن طريق يصل AJAX

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

المحلول

ويبدو لي أنك الخلط بين شيئين مختلفين: قراءة قيمة من حالة جلسة العمل (في التعليمات البرمجية) يختلف عن ربط مثيل SessionState للطلب الحالي

.

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

وهكذا، للإجابة على سؤالك: إن المهلة لا يمكن إعادة تعيين

.

لتوضيح المثال الذي أعطيته: سيتم إعادة تعيين مهلة على تحميل <م> من الصفحة، بدلا من عندما تقرأ جلسة الهوية في التعليمات البرمجية

نصائح أخرى

والوصول إلى جلسة الهوية لا يؤثر مهلة الدورة. إذا كنت تأخذ نظرة خاطفة مع العاكس، الخاصية جلسة الهوية (تنفذ في HttpSessionStateContainer) يبدو مثل هذا:

public string SessionID
{
    get
    {
        if (this._id == null)
        {
            this._id = this._stateModule.DelayedGetSessionId();
        }
        return this._id;
    }
}

والذي لا تلمس العناصر الأساسية المخزنة.

وأيضا، في هذا المستوى لا يهم من أين جاء بناء على طلب من (اياكس / عادي).

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