الجلسات في الـ ASP.NET Core 1.0

04 فبراير 2016     461 مشاهدة    0 تعليق
تم النشر في #ASP.NET  #Session 

كما هو معلوم أن إدارة الحالة State Management هي من المواضيع المهمة في تقنية الـ ASP.NET, وإحدى طرق هذه الإدارة هي إستخدام الـ Session.

طبعاً إذا كنت مطوراً جديداً ولم تسمع بالـ Session سابقاً أرجو منك مراجعة أي موضوع يتطرق لإدارة الحالة قبل إكمال الموضوع. أما المطورين الذين قد إستخدموها أو سمعوا بها سابقاً فالـ Session ليست بالجديدة على مطوري الـ ASP.NET ولكن الإختلاف الجذري أن الـ Session هنا أنها أصبحت Pluggable أي يمكنك إستخدامها متى ما شئت وذلك بإضافة الحزمة Microsoft.AspNet.Session و يمكنك إزالتها بإزالة الحزمة السابقة.

ومثلها مثل أي Middleware نقوم بإضافتها في الإجراء ConfigureServices على النحو التالي:

services.AddSession(o =>
{
     o.IdleTimeout = TimeSpan.FromSeconds(10);
});

فنلاحظ أنه تم ضبط بعض خيارات الـ Session مثل الوقت اللازم لإنهاء الجلسة. ولإستخدامها نقوم بكتابة السطر التالي في الإجراء Configure

app.UseSession();

وأريد أن أنوه أن هنالك فرق آخر بين الـ Session في الإصدار الأخير عن الإصدارات السابقة في الـ APIs التي يتسخدمها المطور حيث كان في السابق بإمكانك وضع أي نوع من أنواع البيانات ومن ثم إستخدامه وقت الحاجه, أما هنا فتقتصر الـ APIs على الدالتين GetString و GetInt32 والإجرائين SetString و SetInt32.

HttpContext.Session.SetInt32("Counter", ++Counter);

وقد قمت بإقتراح تطوير الإجرائين Get<T> و Set<T> في الـ Session ليتم دعم باقي أنواع البيانات دون إنشاء دوال إضافيه, ويمكنك متابعة النقاش هنا.

فخلاصه لما قلنا سابقاً أنه لا داعي للقلق عن إستخدامك للـ Sessions في الـ ASP.NET Core 1.0 ما دام أساسك سليم, لكن الشيء الذي يمكن أن تفقده هو إستخدام الحدثين Session_Start و Session_End وقد تم ذكره هنا.

أما للمزيد من التفاصيل حول الـ Sessions يمكنك متابعة المصدر على هذا الرابط.

تويتر فيسبوك قوقل + لينكد إن


اكتب تعليقك