PDA

View Full Version : مبتدی: درخواست آموزش session



ozzy_mra
چهارشنبه 01 تیر 1390, 09:48 صبح
سلام دوستان
کسی می تونه مفهوم و روش استفاده از Session رو به من آموزش بده و اینکه فرقش با ViewState چیه؟
متشکرم

محمد متاله
جمعه 03 تیر 1390, 02:59 صبح
session متغیری هست که در سمت سرور ایجاد می شود همچنین برای هر کاربر یکبار این متغیر ایجاد می شود تا موقعی که session (جلسه) این کاربر تما م نشود این متغیر فقط برای همین کاربر در حافظه سرور باقی می ماند یعنی تا موقعی که کابر مرورگرش را نبسته و یا اینکه مقدار timeout اش که در web.config تنظیم کرده ایم تمام نشده باشد

مثلا در صفحه ای در page_Load شما یک متغیر از نوع Session به نام مثلا name و یا هر نام دیگر درون سرور در نظر گرفته اید و مقدار آن را محمد قرار داده اید



session["name"] = "محمد";


با این کار هر کاربری که این صفحه را باز می کند یک متغیر به نام name و با مقدار محمد برای او در نظر گرفته می شود. (به کاربردهای واقعی این مثال فکر کنید مثلا ذخیره تاریخ ورود کاربران به سیستم درون متغیر session و ....... چون کاربران مدام بین صفحات سایتتان جابجا می شوند شما نمی توانید در صفحه مثلا اولین صفحه سایتتان متغیری تعریف کنید و در تمام لحظاتی که کاربر دارد دیگر صفحات سایتتان را پیمایش می کند مقدار آن را در همان صفحه اول برای این کاربر نگه دارید چون تا موقعی که صفحه postback می شود مقدار متغیرهایش از بین می رود)

اگر بخواهید فقط یک متغیر برای تمام کاربران در سمت سرور ایجاد شود از application استفاده کنید



application["name"] = "محمد";


توجه کنید که تمام متغیر های session و application از نوع object هستند یعنی هر نوع داده ای را می توانید در آن ذخیره کنید.

متغیر از نوع viewstate در سمت کلاینت و بر روی سیستم کاربر ذخیره می شود

در کل شما به دو صورت می توانید متغیر ها را در سمت سرور ذخیره کنید
1- با استفاده از session
2- با استفاده از application

مزیت:
1- افزایش سرعت در هنگام خواندن اطلاعات
2- امنیت بسیار بالا

معایب:
1- استفاده زیاد از RAM سرور که در هنگامی که تعداد کاربران زیاد باشد سرباری زیادی را بر سرور تحمیل می کند.

به پنج روش می توانید اطلاعات را در سمت کلاینت ذخیره کنید:
1- ViewState
control state -2
cookie-3
hiddenfield-4
querystring-5

که هر کدام ویژگی های و کاربردهای مختص خودش را دارد

مزایا:
1- کاهش بار ترافیکی حافظه سرور
2- استفاده چندین سرور از متغیرهای ذخیره شده در سمت کاربر

معایب
1- امنیت پایین
2- کاهش سرعت انتقال اطلاعات به دلیل پاس دادن های اطلاعات بین سرور و کلاینت
3- سرعت پایین باز هم به دلیل ارسال ودریافت مداوم اطلاعات بین سرور وکلاینت

ozzy_mra
شنبه 04 تیر 1390, 07:08 صبح
خیلی ممنون از توضیح جامعتون

maryamgole
سه شنبه 30 خرداد 1391, 09:27 صبح
مرسی خیلی خوب بود

hr_3303
جمعه 02 تیر 1391, 17:04 عصر
session متغیری هست که در سمت سرور ایجاد می شود همچنین برای هر کاربر یکبار این متغیر ایجاد می شود تا موقعی که session (جلسه) این کاربر تما م نشود این متغیر فقط برای همین کاربر در حافظه سرور باقی می ماند یعنی تا موقعی که کابر مرورگرش را نبسته و یا اینکه مقدار timeout اش که در web.config تنظیم کرده ایم تمام نشده باشد

مثلا در صفحه ای در page_Load شما یک متغیر از نوع Session به نام مثلا name و یا هر نام دیگر درون سرور در نظر گرفته اید و مقدار آن را محمد قرار داده اید



session["name"] = "محمد";


با این کار هر کاربری که این صفحه را باز می کند یک متغیر به نام name و با مقدار محمد برای او در نظر گرفته می شود. (به کاربردهای واقعی این مثال فکر کنید مثلا ذخیره تاریخ ورود کاربران به سیستم درون متغیر session و ....... چون کاربران مدام بین صفحات سایتتان جابجا می شوند شما نمی توانید در صفحه مثلا اولین صفحه سایتتان متغیری تعریف کنید و در تمام لحظاتی که کاربر دارد دیگر صفحات سایتتان را پیمایش می کند مقدار آن را در همان صفحه اول برای این کاربر نگه دارید چون تا موقعی که صفحه postback می شود مقدار متغیرهایش از بین می رود)

اگر بخواهید فقط یک متغیر برای تمام کاربران در سمت سرور ایجاد شود از application استفاده کنید



application["name"] = "محمد";


توجه کنید که تمام متغیر های session و application از نوع object هستند یعنی هر نوع داده ای را می توانید در آن ذخیره کنید.

متغیر از نوع viewstate در سمت کلاینت و بر روی سیستم کاربر ذخیره می شود

در کل شما به دو صورت می توانید متغیر ها را در سمت سرور ذخیره کنید
1- با استفاده از session
2- با استفاده از application

مزیت:
1- افزایش سرعت در هنگام خواندن اطلاعات
2- امنیت بسیار بالا

معایب:
1- استفاده زیاد از RAM سرور که در هنگامی که تعداد کاربران زیاد باشد سرباری زیادی را بر سرور تحمیل می کند.

به پنج روش می توانید اطلاعات را در سمت کلاینت ذخیره کنید:
1- ViewState
control state -2
cookie-3
hiddenfield-4
querystring-5

که هر کدام ویژگی های و کاربردهای مختص خودش را دارد

مزایا:
1- کاهش بار ترافیکی حافظه سرور
2- استفاده چندین سرور از متغیرهای ذخیره شده در سمت کاربر

معایب
1- امنیت پایین
2- کاهش سرعت انتقال اطلاعات به دلیل پاس دادن های اطلاعات بین سرور و کلاینت
3- سرعت پایین باز هم به دلیل ارسال ودریافت مداوم اطلاعات بین سرور وکلاینت

ممنون از دوست .
سئوال من اینه که اینا رو چطوری میشه خوندش.شما فقط روش نوشتن رو توضیح دادید.

fakhravari
جمعه 02 تیر 1391, 22:21 عصر
ممنون از دوست .
سئوال من اینه که اینا رو چطوری میشه خوندش.شما فقط روش نوشتن رو توضیح دادید.
یعنی خیلی سخته؟؟
کمی سرچ نمی فرمایید

masoud_z_65
شنبه 03 تیر 1391, 09:19 صبح
دوست عزیز ممنون بابت توضیح عالیت

یه سوال داشتم اینکه من از Session استفاده کردم اما وقتی که از یک صفحه کاربر 2 تا باهم باز میکنه اطلاعاتم بهم میریزه چون 2تا Session همنام میشه که روی هر کدام یک کاری انجام میده

راه حلش چیه؟ استفاده از view State؟

masoud_z_65
سه شنبه 20 تیر 1391, 22:41 عصر
کسی سوال منو جواب نمیده؟!

چرا وقتی از یک ماژولم(صفحه) 2 بار با هم باز میکنم میریزه بهم اطلاعاتم؟
میدونم به خاطر session هستش اما چیکار باید بکنم؟!؟!؟!؟