عمومی

نقش Session در ارتباط بین سرور و برنامه های تحت وب در ASP.Net

Session ها در حقیقت مقادیری که کاربر در صفحات وارد می نماید را ذخیره و بازیابی می کند. وب سرورها درخواستهای HTTP برای هر صفحه را بعنوان یک درخواست مستقل نگه می دارند. بهمین دلیل هیچ گونه اطلاعاتی از درخواست قبلی را در خود ذخیره نمی کنند.

فهرست این مقاله ( با کلیک روی هر عنوان به آن قسمت منتقل می شوید) پنهان

در اینگونه مواقع ASP.Net با استفاده از Session ها در یک مدت زمان معین اطلاعاتی که از یک مرورگر به سمت سرور ارسال می گردد را ذخیره می نماید. بطور پیشفرض  ASP.NET در تمامی برنامه ها Session ها را فعال نگه می دارد. متغیرهای Session در یک شی ء بنام SessionStateItemCollection  ذخیره می گردند. Session ها از طریق یک شناسه واحد بنام SessionID شناخته می شوند. بطور پیشفرض مقادیر SessionID ها در کوکی ها ذخیره می شوند. برای مثال نمونه کد زیر متغیرهای firstname و lastname را از Textbox استخراج نموده و ذخیره می نماید :

Session(“FirstName”) = FirstNameTextBox.Text

Session(“LastName”) = LastNameTextBox.Text

ASP.Net تمام اطلاعات Session ها را در حافظه برنامه ها ذخیره می نماید. برای این منظور شما می توانید این اطلاعات را بطور مستقل در یک فضای مجزا ذخیره نمایید. بطوریکه پس از هر بار اجرای برنامه ، اطلاعات نیز ذخیره شده بلقی می مانند. برای مثال در SQL Server این اطلاعات برای وب سرورهای مختلف قابل دسترس خواهند بود.

در ASP.Net نسخه ۴ به شما این امکان داده شده است تا Session ها را فشرده نمایید. به دلیل اینکه Session ها اطلاعات را ذخیره می نمایند و این امکان جزئی از منابع سرور بشمار می رود. در نتیجه استفاده بی رویه از آن توصیه نمی گردد. مایکروسافت در نسخه جدید امکانی را برای فشرده سازی Session ها ارائه نموده است. برای استفاده از این ویژگی از کد زیر استفاده نمایید :

<sessionState compressionEnabled=”true” />

 در واقع Session یک دوره زمانی مشخص شده ای است که کاربر با برنامه تحت وب در تعامل است. برنامه نویسان ASP برای ثبت مقادیر ورودی توسط کاربران از ویژگی بنام Session state استفاده می نمایند. در تعریف برنامه نویسی این ویژگی یک دیکشنری و یا جدول کلمات نیست. بعنوان مثال یک کاربر کالاهایی را برای یک ماشین حمل بار انتخاب می نماید :

Session (“Stocks”) = “MSFT” ; VRSN ; GE” a

در صفحه دیگر این مقادیر خوانده می شوند و برنامه تحت وب به این مقادیر بدون ورود ذوباره توسط کاربر دسترسی می یابد:

‘ Get Stocks, split string, etc.

Dim StockString

StockString = Session(“Stocks”) f

ASP با تخصیص دادن یک کلید یکتا به کاربر این مقادیر را در Session ذخیره می نماید.

[irp posts=”۶۱۳۴″ name=”ASP Session چیست به همراه کاربرد آن”]

مشکلات ASP Session State

برنامه نویسان ASP امکان Session را بعنوان یک ویژگی بزرگ می شناسند ، اما محدودیتهای زیر را نیز باید در نظر بگیرید :

Process dependent :

باید در نظر داشته باشید Session ها در سرور میزبان تولید می شوند و هر صدمه ای که به این میزبان ایجاد شود ، تمام Session از بین خواهد رفت.

Server farm limitations :

اگر کاربری هاست خود را تغییر دهد ، Session ها انتقال نخواهند یافت . Session ها مختص هر ماشین و مخصوص به آن تولید می شوند. و بهمین ترتیب اگر کاربر دوباره به هاست قبلی باز گردد Session ها غیر قابل دسترس خواهند بود.

 Cookie dependent :

کاربرانی که قادر به دریافت کوکی ها نمی باشند از مزیت های session state نمی توانند استفاده نمایند. برخی کاربران معتقدند که کوکی ها امن نیستند و انها را غیر فعال می نمایند که در نتیجه منجر به از کار افتادن Session ها در سمت سرور می شوند. پیش از این مفصلا درباره موضوع کوکی چیست صحبت کرده ایم.

Session State در ASP.Net

تمام مشکلاتی که بیان شد توسط ASP.Net برطرف گردیده اند :

Process Independent :

این ویژگی امکانی را به کاربران میدهد تا Session ها در یک پروسه مجزا از بقیه برنامه در سمت سرور اجرا گردد.

Support for server farm configurations :

با جابجایی هاست Session ها از بین نمی رود و با استفاده از مدل جدید پردازش مستقل این امکان را به کاربر میدهد تا از سرورهای دیگر نیز برای Session ها استفاده گردد.

Cookie independent :

در ASP.Net تنظیمات Session ها نیازی به کوکی ندارند و مانند ASP کلاسیک با غیر فعال کردن آنها Session ها از بین نمی روند.

 در ASP.Net تنظیمات Session در فایلی بنام Config.web ذخیره می گردند. این فایل در دو شکل مختلف موجود می باشد یک فایل در سمت سرور مورد استفاده قرار می گیرد و نوع دوم در سطح برنامه تحت وب می باشد.

در حالت اول این فایل در مسیر winntmicrosoft.netframeworkv1.0.2204 قرار دارد و اگر Session بخواهد ذخیره گردد در این فایل تنظیم می گردد . در غیر اینصورت تنظیمات پیشفرض config.web دستنخورده باقی می ماند.

البته این نکته نیز حائز اهمیت می باشد که به محض تغییرات در Session فایل مورد نظر به سرعت میرایش می گردد و مانند ASP کلاسیک پردازش متوقف نشده و  ویرایش انجام گردد و دوباره پردازش شروع بکار کند.

 Session ها در حالت SQL سرور

در این حالت اطلاعات بجای ذخیره در حافظه در SQL سرور ذخیره می شوند. برای این منظور نخست باید جداول لازم را برای Stored procedure ها در فایلی بنام state.sql ایجاد نمایید.

این فایل شامل دستوراتی است که پایگاه داده ASPState را توسط آن ایجاد می نمایید. این دستورات دو جدول و چندین Stored procedure ایجاد می نمایند. این فایل در مسیر winntmicrosoft.netframewordk[version قرار دارد.

به شما پیشنهاد می شود مقاله ما  را برای کسب اطلاعات در مورد یادگیری asp net مطالعه نمایید.

 

ایران هاست

مشخصات مدیر

دیدگاهتان را بنویسید

نوشته های مشابه

دکمه بازگشت به بالا