الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Session.SessionID هل هو الحل

بدأه mamababadada في 18 ديسمبر 2010 · 4 رد · 582 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخواني الاعزاء لدي موقع يقوم المستخدم برفع الصور عليه ولكن يتم تخزين تلك الصور في جدول مؤقتا بقاعدة البيانات ليتمكن المستخدم من استعراضها وفي حال ضغط على زر الحفظ النهائي يتم عندها نقل تلك الصور الموجودة في الجدول الذي يحتفظ بالصور المؤقته للجدول الفعلي للصور وتأخذ رقم Sequince ID

الان كيف استطيع أن اربط الصور التي تم رفعها على جدول الصور المؤقت بالمستخدمين .. لقد استخدمت التالي فهل يفي بالغرض أما Session.SessionID ممكن تتكرر مع مستخدم آخر على الشبكه .

if (!IsPostBack) ViewState["MysessionID"] = Session.SessionID.ToString();

Many of life’s failures are people who did not realize how close they were to success when they gave up

Thomas Edison

#2

لا يتكرر ولكن يتغير في كل فتح للموقع

#3

لست مع طريقتك هذه .. مطولها وهي قصيرة ..

ضع في الجدول عمود سميه IsTemp من نوع Bit يعني نعم / لا ..

واثناء تخزين الصورة مؤقتا .. يكون نعم وأثناء الحفظ يكون لا ..

بدلا من عملية الحفظ المكررة وتصبح مرة واحدة فقط وتوفير الوقت ..

اللهم أطل عمري وأحسن عملي واختم بالشهادة أجلي

#4

السلام عليكم

توضيح بعض المفاهيم :

ماهى Session , SessionId ,Session Variables ؟

عملية الإتصال بين حاسب المستخدم والموقع (أو نقول الخادم ) تسمى Session , وينتج عن ذلك أن لكل مستخدم Session مختلف , ما يجعله مختلفاً أن لكل Session ما يعرف بمعرف الهوية وهو SessionID , وإذا حدث وقام نفس المستخدم بإغلاق المتصفح أو ربما فتح متصفح آخر فهناك يتم إنشاء Session جديد وله رقم أيضاً مختلف , ويحفظ هذا الرقم إما فى عنوان الصفحة URL أوفى Cookies ويختلف الأمر عند العمل مع Mobile . وهناك كلام حول هذا الرقم (يرجى الرجوع إلى MSDN ) . اما الثالث وهو Session Variables وهى المتغيرات التى يتم تعريفها من قبل المستخدم ليستخدمها المبرمج لحفظ البيانات التى تخص كل مستخدم على حده (Per User ). ويكون لهذة الجلسة " أقصد session " وقت يتم تحديده فى ملف Web.config ويرتبط ببداية ونهاية هذة الجلسة حدثين نجدهما فى ملف Global.asax . يتم تنفيذهما فى حالة تخزين Session Varaibles فى ذاكرة نفس الحاسب , غير ذلك لا يتم تنفيذهم وذلك عند تخزين هذة المتغيرات إما فى قاعدة بيانات أو خادم أخر (يتم التواصل بواسطة عنوان الخادم الآخر ) أو فى مكان يحدده المستخدم (أقصد Custom Mode ).

هذا ملخص ما يخص الـ Session .

حدد أنت ؟

يسر الله لكم أمركم

Ahmed Moosa

Microsoft Community Contributor | MCC

Microsoft Certified Professional Developer | MCPD

Microsoft Certified Technology Specialist | MCTS

Senior .NET Developer

.Net Trainer

English blog : http://weblogs.asp.net/ahmedmoosa/

مدونة عربى : http://ahmedmoosa.wordpress.com/

#5
اقتباس

لست مع طريقتك هذه .. مطولها وهي قصيرة ..

ضع في الجدول عمود سميه IsTemp من نوع Bit يعني نعم / لا ..

واثناء تخزين الصورة مؤقتا .. يكون نعم وأثناء الحفظ يكون لا ..

بدلا من عملية الحفظ المكررة وتصبح مرة واحدة فقط وتوفير الوقت ..

طيب الصور التي يتم حفظها من المستخدم سيتم تعليمها بـ....... لا كما ذكرت بطريقتك .. لكن الصور التي لم يتم حفظها مثال :

المستخدم دخل حمل 5 صور على قاعدة البيانات واستعرضها ولكن لم يضغط لا على حفظ ولا غيره اختار رابط آخر في الموقع أو قفل المتصفح وجلست أنا والعامود حقك isTemp معلقين مين يفكنا واصبح عندي صور مؤقته بسبب استحالة التكهن بعمليات المستخدمين على الموقع

الاخ احمد موسى شكرا للتوضيح بالنسبة SessionID ممكن يتكرر الرقم لو تم اعادة تشغيل للسيرفر وذلك بسبب تفريغ sequence الخاص بالـ SessionID واعادته من جديد للعمل

بقليل من التعديل وضعت حقل تاريخ في الجدول المؤقت وعند الدخول لصفحة رفع الصور يتم حذف تواريخ اي صور تكون مدخله قبل يومين وذلك لتنظيف مخلفات صور المستخدمين المؤقته والتي لم يتم اتخاذ اجراء عليها لا بحفظ ولا بلا ..ولان اليومين هذه تكون كافيه لدي لعدم الاصطدام بصور تكون مرفوعه من قبل المستخدم ولم يأخذ فرصته في ا تخاذ قرار حفظها من عدمه .. لان اصلا ما في لا في رفع الصور في رفع بس . :P

Many of life’s failures are people who did not realize how close they were to success when they gave up

Thomas Edison

مواضيع مشابهة