پیکربندی session در برنامه های وب
پیاده کنندگان برنامه های وب برای پیکربندی session state می توانند از فایل web.config ( موجود در دایرکتوری مجازی شامل فایل های aspx . ) استفاده نمایند . با استفاده از فایل فوق می توان گزینه های پیشرفته ای نظیر timeout و مد session state را پیکربندی کرد . در صورتی که از ویژوال استودیو برای ایجاد یک برنامه وب استفاده شده باشد ، همزمان با ایجاد پروژه ، بطور اتوماتیک یک فایل web.config نیز ایجاد می گردد .
کد زیر یک نمونه فایل web.config را به همراه مهمترین خصلت های تاثیرگذار در پیکربندی session state را نشان می دهد .
مقدار خصلت فوق بر اساس شرایط زیر تعیین می گردد .
UseCookies : گزینه پیش فرض است و همواره از کوکی استفاده خواهد شد حتی اگر مرورگر و یا دستگاه سرویس گیرنده از آن حمایت نکند و یا آن را غیرفعال کرده باشد . در صورتی که دستگاه سرویس گیرنده از کوکی حمایت نکند ، اطلاعات session در بین درخواست های متوالی گم می شود . چراکه هر درخواست یک ID جدید را خواهد گرفت .
UseUri : از کوکی صرفنظر از قابلیت های مرورگر و یا دستگاه سرویس گیرنده استفاده نخواهد شد . در چنین مواردی ، شناسه session در یک URL ذخیره می گردد .
UseDeviceProfile : معیار انتخاب ASP. NET جهت استفاده از cookieless session ، بررسی نتایج حاصل از بکارگیری شی BrowserCapabilities است . شی فوق صرفا” پتانسیل هائی را که دستگاه مورد نظر از آنها حمایت می نماید مشخص می کند ( خود را درگیر مواردی نظیر غیرفعال کردن کوکی توسط کاربر نمی کند ) .
AutoDetect : در این روش ، در آغاز ASP. NET سعی می کند تشخیص دهد که آیا مرورگر از کوکی حمایت می نماید . بدین منظور یک کوکی بر روی کامپیوتر سرویس گیرنده ایجاد و در ادامه آن را بازیابی می نماید . ماحصل فرآیند فوق می تواند این موضوع را به اثبات رساند که مرورگر از کوکی حمایت می نماید ولی توسط کاربر غیر فعال شده است ( در چنین مواردی از مد cookieless استفاده می گردد )
کد زیر بر استفاده از مد cookieless تاکید می نماید ( مناسب برای تست ) .
در مد cookieless ، شناسه session بطور اتوماتیک درون یک URL قرار می گیرد . زمانی که ASP. NET یک درخواست را دریافت می نماید ، شناسه آن را حذف ، مجموعه session را بازیابی و درخواست دریافتی را برای دایرکتوری مورد نظر ارسال می نماید .
با توجه به این که شناسه session درون URL جاری قرار می گیرد ، لینک های مربوطه نیر بطور اتوماتیک قادر به استفاده از شناسه session خواهند بود . به عبارت دیگر ، در صورتی که کاربر بر روی page1.aspx باشد و بر روی لینک مربوط به page2.aspx کلیک نماید ، لینک مربوطه شامل شناسه session جاری به عنوان بخشی از URL مورد نظر خواهد بود . سناریوی فوق در مواردی که از متد Response.Redirect به همراه یک URL نسبی استفاده شده باشد نیز صدق می کند .