منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : معلومات عامة حول الجلسة session
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
Session



تستخدم السيشن ( الجلسة ) لتخزين بيانات المستخدم على السيرفر لفترة زمنية محددة ( افتراضيا 20 دقيقة ) , لكل سيشن ID فريد يميزها عن غيرها حتى لو كان لهم نفس الاسم فلا مشكلة , يقوم السيرفر بربط طلبات مستعرض معين مع السيشن الخاص به عن طريق هذا الـ ID حيث يتم أرساله واستقباله عبر cookie , أو عبر الـ URL إذا كانت الخاصية cookieless تساوي true كما سنرى لاحقا.
والسيشن تنشأ لكل مستخدم في بداية تصفحه للموقع ويتم إطلاق الحدث Session_OnStart , وعند انتهاء زمن السيشن يتم إطلاق الحدث Session_OnEnd

من أهم خصائص الـ session :

Timeout : تحديد الفترة الزمنية للإحتفاظ بالسيشن مقدرة بالدقائق ( افتراضيا 20 دقيقة ) ويتم إعادة البدء بحساب الزمن من الصفر عند كل عملية وصول للسيشن ( قراءة أو كتابة ) , أكبر قيمة يمكن أن تأخذها هذه الخاصية هي 525600 وهي تعادل سنة واحدة .

Mode : وهي تحدد طريقة تخزين السيشن على السيرفر وتأخذ أحد القيم التالية :

1- InProc : وهو الخيار الافتراضي , حيث يتم تخزين السيشن في ذاكرة السيرفر ( رام ) وهو نمط التخزين الوحيد الذي يدعم الحدث Session_OnEnd

2- StateServer : يتم تخزين السيشن في بروسيس ( process ) مستقلة عن بروسيس التطبيق , وبالتالي تضمن الاحتفاظ بقيمها في حالة إعادة تشغيل التطبيق ( restart ) كما تسمح بالوصول للقيم من أكثر من web service واحدة

3- SQLServer : يتم تخزين السيشن في قاعدة بيانات SQL Server , وبالتالي تضمن الاحتفاظ بقيمها في حالة إعادة تشغيل التطبيق ( restart ) كما تسمح بالوصول للقيم من أكثر من web service واحدة

4- Custom : حيث نحدد أسلوب خاص بنا لتخزين السيشن , يتطلب تحضيرات عديدة كتعريف الاتصال وطريقة التخزين وغيره ...

5- Off : إلغاء تفعيل السيشن

Cookieless : تحدد أسلوب تبادل معلومات السيشن بين السيرفر والمتصفح وتأخذ أحد القيم التالية :

AutoDetect : يقوم بتحديد هل المتصفح يدعم استخدام الـ cookie فإن كان يدعمها فيتم استخدام الـ cookie وإلا فإنه يتم تمرير معلومات السيشن عبر الـ URL

UseCookies : الإصرار على استخدام الكوكيز بغض النظر إن كانت مدعومة من المتصفح أم لا , وهو الخيار الافتراضي

UseUri : استخدام الـ URL لتبادل معلومات السيشن حتى إن كان المتصفح يدم الكوكيز

True : منع استخدام الكوكيز الخاصين بالسيشن وبالتالي استخدام الـURL

False : السماح باستخدام الكوكيز الخاصين بالسيشن

IsCookieless : تعيد True إذا كانت معلومات السيشن مضمنة في الـ URL , وإلا فإنها تعيد
False

قسم عملي :

في البداية نقوم باستدعاء فضاء العناوين التالي


PHP كود :
using System.Web.SessionState

إنشاء سيشن اسمها MySession وقيمتها Hello World

PHP كود :
Session["MySession"] = "Hello World"

الحصول على ID السيشن السابقة

PHP كود :
string id Session.SessionID

تحديد زمن بقاء السيشن بـ 30 دقيقة

PHP كود :
Session.Timeout 30

قراءة المعلومات المخزنة بالسيشن

PHP كود :
string value Session["MySession"].ToString(); 

معرفة أسلوب تخزين السيشن على السيرفر

PHP كود :
string mode Session.Mode.ToString(); 

معرفة قيمة الخاصية IsCookieless

PHP كود :
bool is_cookieless Session.IsCookieless

والله ولي التوفيق

يعطيك العافية

على

الشرح الرائع
thanksssss
شرح ومعلومات اكتر من رائعه شكرا جزيلا
 الله يعطيك العافية  

أضيف معلومه  :  
هو   الاستخدام الاكثر شيوعا  للــــــ Session  بيكون مخصصة  للــــ Current User
و بيسمح لك  تعمل Roles   خاصه  بكل User