PDA

View Full Version : سوال: مشکل با sesstion ها



tc1000
جمعه 14 اسفند 1388, 19:18 عصر
من برنامه ای نوشته ام که از sesstion برای نگهداری اطلاعات در حافظه و بین صفحات استفاده شده است.
مثال:

timer.text=sesstion("timer")
حالا در موقعی که به پرداخت آنلاین انتقال پیدا میکنم تمام sesstion ها پاک میشن و برنامه دیگه هیچ کدام از Sesstion ها رو نداره . در کوکی این جوری نبود.

چه کاری میتونم انجام بدم
سئوال بعدی اینکه استفاده از کوکی ها بهتره یا Sesstion ؟ و دلیل آن و اگه چیز بهتری هم هست ممنون میشم بگید
با تشکر

Peyman.Gh
جمعه 14 اسفند 1388, 19:26 عصر
Session رو Add کردید ؟!

tc1000
جمعه 14 اسفند 1388, 19:33 عصر
منظورتون از Add کردن چیه؟

Peyman.Gh
جمعه 14 اسفند 1388, 19:36 عصر
تا جایی که امکان دارد تکه کد هاتون رو بزارید تا بتونیم نظر بدهیم

tc1000
جمعه 14 اسفند 1388, 19:42 عصر
کد خاصی نیست
من اول می ام این کار رو انجام میدم

sesstion("user_id")=user_id.text
بعد تو صفحات دیگه از این تک استفاده میکنم برای جستجو در دیتا بیس
حالا وقتی به صفحه بانک انتقال پیدا میکنم بعد از پرداخت یا هر عمل دیگه وقتی callback میشه به صفحه خودم وقتی Sesstion رو چک میکنم nothing هستش

Peyman.Gh
جمعه 14 اسفند 1388, 19:44 عصر
خوب شما هیچ جا Session را Add نمیکنید ؟! پس این Session کجا ایجاد میشه ؟!

tc1000
جمعه 14 اسفند 1388, 19:52 عصر
مشکل حل شد
سئوال دوم هم جواب میدید؟

Open-Source
جمعه 14 اسفند 1388, 19:59 عصر
هر کدوم کارایی خاص خودشون رو دارند..
استفاده از هیچ کدوم بیش از حد خوب نیست.
کوکی روی کلاینت هست و session روس سرور.
اگه بیش از حد از session استفاده کنی فشار زیادی به سرور وارد میشه تا جایی که ممکنه هنگ بکنه.

Peyman.Gh
جمعه 14 اسفند 1388, 19:59 عصر
نمیتونم با قاطعیت جواب بدم اما به نظر من Session ها البته اساتید باید نظر بدن.
درباره Session این پست ها را مطالعه کنید :

http://barnamenevis.org/forum/showpost.php?p=452114&postcount=18

http://barnamenevis.org/forum/showpost.php?p=452316&postcount=20

tc1000
جمعه 14 اسفند 1388, 20:12 عصر
در مورد timeout هم لطفا بگید ممنون میشم

Peyman.Gh
جمعه 14 اسفند 1388, 20:26 عصر
TimeOut مدت زمانی هست که بعد از آن Session از بین میرود
به این صورت میتونید در Web.Config

<sessionState timeout="10"></sessionState> این تگ را قرار دهید.

tc1000
جمعه 14 اسفند 1388, 23:17 عصر
regenerateExpiredSessionId="true"
این به چه معنی هستش؟

naeeme
شنبه 15 اسفند 1388, 10:13 صبح
چون شما دارید با پرداخت الکترونیک کار می کنید، من بهتون پیشنهاد میدم، مقادیری که میخواید در session نگهداری کنید رو به صورت Querystring در url صفحه معرفی شده به درگاه پرداخت قرار بدید و به session اتکا نکنید. در ضمن timeout برای session رو بیش از 20 دقیقه قرار بدید چون خیلی مواقع پیش میاد که کاربر بیش از 15 دقیقه در صفحه پرداخت می مونه و در این مدت session شما منقضی میشه یا اگر زمان انقضای session رو زیاد بگذارید( مثلا 40 دقیقه) ممکنه کاربر شما در دروازه پرداخت از پرداخت وجه منصرف شده باشه و صفحه رو بسته باشه و رفته اما session شما هنوز وجود داره و یک کاربر دیگه بیاد و ادامه پرداخت رو انجام بده و این میشه یه دردسر بزرگ برای شما.
بهتره تمام بررسیهاتون رو به مقدار بازگشتی از درگاه پرداخت( همون شماره خرید یکتا بین شما و درگاه) و مقادیر بازگشتی از طریق querystring وابسته کنید.

Peyman.Gh
شنبه 15 اسفند 1388, 11:46 صبح
اینجا رو نگاه کن کامل توضیح داده شده : http://msdn.microsoft.com/en-us/library/h6bb9cz9.aspx