# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > ASP.NET Web Forms >  Session چیست ؟

## merlin_vista

من قابلاً این سوالات را پرسیدم ولی تایپیکم به علت این که 3 عدد سوال را با هم پرسیدم پاک شده است !!

از دوستان کسی میتونه یک توضیح کامل درباره تابع Session برای من بنویسد !  :متفکر:

----------


## m.hamidreza

http://quickstarts.asp.net/QuickStar...ons/state.aspx

----------


## khz-web1

*جلسات (Sessions)*
فریم ورک دات نت برای رد گیری حرکت کاربر ما را تنها نگذاشته و یک امکان خوب به نام Session State را در اختیار ما قرار داده است. به طور پیش فرض وقتی کاربر اولین بار صفحه‌ای را از یک وب سایت ساخته شده با ASP.NET درخواست می کند یک کوکی جلسه به نام ASP.NET_SessionID ساخته شده و به مرورگر او ارسال میشود. با این کار ASP.NET قادر به پیگیری کاربر شده و میتواند در درخواست‌های بعدی او را شناسایی کند. 

بر این اساس در ASP.NET یک شیء به نام Session قرار داده شده است که میتوانید از آن برای نگهداری اطلاعات مربوط به هر کاربر استفاده کنید. 

می تونی به لینک زیر هم بری بد نیست 
www.poyesh.ir/poyesh

روی دکمه ی تشکر هم بزن

----------


## merlin_vista

از کمک شما منون !

----------


## uthman

سلام.در اکثر پروژه ها لازم است که اطلاعاتی در بین صفحات انتقال داده بشه.برای این کار به دو طریق انجام میشود:
1-query string
2-session
 و اما فرق این دو:
زمانی که شما نیاز دارید اطلاعاتی را بین صفات انتقال بدید که اطلاعات مهمی نیستند می توانید از روش اول استفاده کنید.زمانی که شما از روش 1 استفاده کنید اطلاعات شما به انتهای url شما اضافه میشه و کاربر میتونه اونو ببینه.خوب با این حال برای اطلاعات مهم نباید از query string استفاده کرد چون در دسترس کاربرن است.
و اما موضوع اصلی خودمون
نمومه 1:
Response.Redirect("2.aspx?name="+txtname.Text+"&fa  mily="+txtFamilt.Text+"");
 و زمانی که بخواهید اطلاعات یک query string رو بخونید از کد زیر استفاده کنید
if (Request.QueryString["name"]!=null)
        {
            string name = Request.QueryString["name"];
        }
يكی از مهمترين مزايای query string ، عدم تحميل عمليات اضافه به سرويس دهنده است .
و اما محدودیت های آن:
*اطلاعات محدود به رشته های ساده بر کاراکتر های مجاز url  است.
*-اطلاعات توسط کاربران قابل مشاهده می باشد و می توانند هز چیزی را به آن تزریق کنند مثلا حملات sql enjection.
*-تعدادی از مرورگرها دارای محدودیت طول url  بوده بین 1 الی 2 کیلوبایت.
انتفال با sessionها:
session ها دادای امنیت بالاتری هستند و کاربر قادر به مشاهده آنها نیستند.وقتی یک session را اضافه میکنید بین تمام صفات وجود دارد و در هر صفحه ای میتونی به اون دسترسی داشته باشی.
نکات مهم در مورد session ها:
هر session داری یک id هست که از 16 کاراکتر تشکیل شده است که این 16 کاراکتر تشکیل شده از IP Address,Mac Address پس احتمال تکراری بودن آن کم است.برای گرفتن id هر session  از sessioId استفاده می کنیم.
هر session دارای یک زمان انثضا میباشد.که با timeout  تعیین میشه.در صورتی که بعد از اضافه شدن session  شما هیچ عملی انجام ندهید که صفحه postback شود بعد از اتمام زمان آن session  از بین می رود.
نکته مهم:session  ها سمت سرور هستند و در ram  سرور ذخیره میشن.
دوستان اگه مایل به آموزش در مورد view state ,cooki ها هستند بگن تا براتون بزارم

----------


## reza69

> نکته مهم:session  ها سمت سرور هستند و در ram  سرور ذخیره میشن.
> دوستان اگه مایل به آموزش در مورد view state ,cooki ها هستند بگن تا براتون بزارم


 اگه تعداد کاربران زیاد شه مثلا 500 نفر سرور هنگ نمیکنه یا مشکلی براش پیش بیاد؟
اگه میشه آموزش در مورد view state ,cooki ها بزارین.

----------

