وقت انتهاء الجلسة الافتراضي في asp هو 20 دقيقة، وهو ما لا يكفي في كثير من الحالات. اليوم، هناك العديد من الطلبات من العملاء لتسجيل الدخول مرة أخرى، لذلك قمت بإعداد هذه المقالة لراحة الأصدقاء الذين يحتاجون إليها لم يتم تعيين وقت انتهاء الصلاحية في البرنامج، ثم تنتهي الجلسة وسيتم تنفيذ الوقت وفقًا لوقت انتهاء الصلاحية الذي حدده IIS. وقت انتهاء الصلاحية الافتراضي للجلسة في IIS هو 20 دقيقة. يمكن تغيير وقت الجلسة في IIS.
يجب وضع إعداد الوقت أولاً
على سبيل المثال
انسخ رمز الكود كما يلي:
Session.Timeout=30 'SEESION صالحة لمدة 30 دقيقة
الجلسة (المعرف) = روبية (المعرف)
الجلسة (الاسم) = Rs (الاسم)
الجلسة (التمرير) = روبية (التمرير
استخدم خاصية Session.Timeout لتعيين فترة المهلة
بالنسبة للمستخدم الذي يقوم بتسجيل الدخول إلى تطبيق ASP، إذا لم يقم المستخدم بإجراء أي عمليات أخرى خلال الوقت الافتراضي للنظام، فسيتم إلغاء جلسة المستخدم تلقائيًا عند انتهاء الوقت المحدد، وبالتالي منع إهدار موارد النظام. يمكن استخدام خاصية TimeOut لكائن الجلسة لتعيين وقت انتهاء الصلاحية بالدقائق. تنسيق الإعداد هو:
انسخ رمز الكود كما يلي:
Session.TimeOut=MaxTime
رمز المثال: صفحة (5.asp)، هذا المثال يوضح كيفية التحكم في نهاية الجلسة.
انسخ رمز الكود كما يلي:
<%@ language=vbscript %>
<% session.timeout=60 %>
<أتش تي أم أل>
<head><title>التحكم في وقت نهاية الجلسة</title><head>
<الجسم>
<%
من = Session.SessionID
CurrentPage=Request.ServerVariables(SCRIPT_NAME)
Response.AppendTolog who &: & CurrentPage
Response.write <center>معرف الجلسة الخاص بك هو: & who & <p>
Response.write مسار الصفحة التي تزورها حاليًا هو: & CurrentPage & <p>
إذا كانت الجلسة (I) = إذن
الجلسة (ط) = 1
آخر
جلسة (ط) = جلسة (ط) +1
نهاية إذا
جلسة.التخلي
Response.write لقد تم تحديث هذه الصفحة وجلسة (i) ومرات بواسطتك. </مركز>
%>
في تطبيقات Asp.net، سيواجه العديد من الأشخاص تعارضات في إعدادات انتهاء صلاحية الجلسة. من بينها، هناك أربع طرق لتعيين وقت انتهاء الجلسة:
1. مستوى الموقع العالمي (أي الخادم).
IIS-Website-Properties-Asp.net-تحرير التكوين-إدارة الحالة-مهلة الجلسة (بالدقائق)-اضبط على 120، أي ساعتين، أي إذا لم يعمل المستخدم الحالي بعد 120 دقيقة، فستنتهي الجلسة تلقائيًا .
2. مستوى الموقع
IIS - موقع الويب - موقع ويب محدد (مثل DemoSite) - الخصائص - Asp.net هناك خياران في الوقت الحالي، أحدهما لتحرير التكوين العام والآخر لتحرير التكوين.
إذا قمت بتحرير التكوين العام، فسيكون هو نفس التكوين السابق.
إذا قمت بتحرير التكوين، فلن يسري مفعوله إلا على موقع الويب الحالي. لأن الخادم قد يحتوي على العديد من مواقع الويب المستقلة.
1. استمر في تحديد إدارة الحالة - مهلة الجلسة (بالدقائق) - اضبطها على 360، أي 360 دقيقة. التأثير هو نفسه كما هو مذكور أعلاه، ولكنه يسري فقط على الموقع الحالي.
2. مهلة مصادقة الهوية-النماذج-الطهي، حدد 12:00:00، وهي 12 ساعة. هناك ثمانية خيارات متاحة:
00:15:00
00:30:00
01:00:00
02:00:00
04:00:00
08:00:00
12:00:00
1:00:00:00
أي أن الحد الأقصى هو 24 ساعة والحد الأدنى هو 15 دقيقة. هذا هو التكوين الافتراضي. ويمكن تخصيصها بحرية في التطبيق.
3. مستوى التطبيق
مثل إدارة موقع الويب، إلا أن النطاق يقتصر على التطبيق الحالي.
4. مستوى الصفحة
في صفحة معينة، قم بتعيين Session.Timeout = 30؛ لتعديل وقت انتهاء الجلسة لصفحة معينة بشكل مؤقت.
للتحقق من وقت انتهاء الجلسة، يمكنك استخدام
انسخ رمز الكود كما يلي:
TimeSpan SessTimeOut = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);
TimeSpan SessTimeOut = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);
من بينها، تنعكس الإعدادات الثانية والثالثة في Web.config:
انسخ رمز الكود كما يلي:
عرض نسخة عادية إلى الحافظة؟
<?xml الإصدار=1.0?>
<التكوين>
<system.web>
<وضع المصادقة=النماذج>
<اسم النماذج=AuthLogin تسجيل الدخولUrl=/Login.aspx الحماية=كل المهلة=360 انزلاق انتهاء الصلاحية=صحيح/>
</المصادقة>
<sessionState mode=InProc cookieless=false timeout=20 />
</system.web>
<مسار الموقع=Login.aspx>
<system.web>
<الترخيص>
<السماح للمستخدمين=* />
</الترخيص>
</system.web>
</الموقع>
</التكوين>
<?xml الإصدار=1.0?>
<التكوين>
<system.web>
<وضع المصادقة=النماذج>
<اسم النماذج=AuthLogin تسجيل الدخولUrl=/Login.aspx الحماية=كل المهلة=360 انزلاق انتهاء الصلاحية=صحيح/>
</المصادقة>
<sessionState mode=InProc cookieless=false timeout=20 />
</system.web>
<مسار الموقع=Login.aspx>
<system.web>
<الترخيص>
<السماح للمستخدمين=* />
</الترخيص>
</system.web>
</الموقع>
</التكوين>
أولوية الإعدادات الأربعة المذكورة أعلاه هي مستوى الصفحة > مستوى التطبيق > مستوى موقع الويب > مستوى الخادم. بمعنى آخر، إذا تم تعيين الصفحة على 20 دقيقة وتم تعيين موقع الويب على 120 دقيقة، فمن الواضح أن 20 دقيقة ستكون وقت انتهاء الصلاحية الفعلي.
نقطة أخرى جديرة بالملاحظة.
في الإعداد الثاني، قم بتعيين مهلة الجلسة (SessionState) على 120 دقيقة، واستخدم مصادقة النماذج في نفس الوقت، واضبطها على 00:15:00، وهي 15 دقيقة، وSlideExpirationo غير صحيح. ما هي انتهاء صلاحية الجلسة الفعلية الوقت الذي يسري مفعوله؟
النتيجة الصالحة هي إعداد SessionState، وهو 120 دقيقة.
إذا تم تعيين وقت انتهاء صلاحية الجلسة ولكن لم يدخل حيز التنفيذ، فيرجى التحقق من التكوينات المذكورة أعلاه.
طرق أخرى وجدت على الانترنت
1. نظام التشغيل: ويندوز سيرفر 2003
الخطوات: ابدأ->الأدوات الإدارية->مدير خدمات معلومات الإنترنت (IIS)->موقع الويب->موقع الويب الافتراضي->انقر بزر الماوس الأيمن على خصائص->الدليل الرئيسي->التكوين->خيارات->تمكين حالة الجلسة->مهلة الجلسة (هنا) اضبط المهلة التي تريدها بالدقائق). نعم.
2. تحديد وقت انتهاء الجلسة في تطبيقات ASP.NET
في تطبيقات الويب مثل ASP.NET، تعد الجلسة طريقة شائعة تستخدم لحفظ حالة المستخدم، ومع ذلك، نظرًا لأن مساحة ذاكرة الخادم محدودة، فإن إعداد وقت انتهاء صلاحية الجلسة ضروري. كيفية ضبط وقت انتهاء الجلسة في ASP.NET؟ الأمر بسيط جدًا، فقط قم بتعديل تكوين web.config.
طريقة التعديل المحددة هي كما يلي، قم بتكوينها كما يلي في web.config
انسخ رمز الكود كما يلي:
<system.web>
<وضع حالة الجلسة=مهلة InProc=30/>
</system.web>
ما يشير إليه هذا هو أن وقت انتهاء الجلسة هو 30 دقيقة. وهذا يعني أنه إذا لم يعمل المستخدم الحالي بعد 30 دقيقة، فستنتهي الجلسة تلقائيًا.
3. في صفحة cs التي تستدعي الجلسة، اكتب ما يلي في حدث التحميل
انسخ رمز الكود كما يلي:
مهلة الجلسة = 30؛
4. تخزين الجلسة في خدمة حالة asp.net
انسخ رمز الكود كما يلي:
<sessionState cookieless=false timeout=480 mode=StateServerstateConnectionString=tcpip=127.0.0.1:42424 sqlConnectionString=مصدر البيانات=127.0.0.1;معرف المستخدم=sa;كلمة المرور= />