آموزش ASP.Net > کار با شی Session

 تعیین شناسه های منحصر به فرد ( ID ) برای اشیای Session

مقدمه :

Session ها در سطح برنامه و در مرورگر توسط شناسه های منحصر به فردی که در خاصیت SessionID آنها نگهداری می شود ، شناسایی می شوند . همچنین این شناسه به سرور کمک می کند تا در پاسخ های ارسالی به مرورگر بتواند Session ها را از هم تشخیص داده و اطلاعات مرتبط را ارسال نماید . شناسه های منحصر به فرد Session ها ، بصورت یک کوکی یا به همراه آدرس صفحه ( URL ) بین سرور و مرورگر جا به جا می شوند .
نکته امنیتی : SessionID ها بصورا متن ( text ) توسط کوکی ها یا در آدرس مرورگر بین صفحات و مرورگر و سرور جا به جا می شوند . به همین دلیل ممکن است یک منبع خارجی بتواند از طریق خواندن این ID به محتویات Session کاربران دیگر دسترسی پیدا کند . بنابراین اگر از طریق Session ها اطلاعات حساس مثل کلمه عبور و ... را جا به جا می کنید ، بهتر است بوسیله متدهایی مثل SSL یا ... آنها را رمزنگاری نمایید .

Session ID های بدون استفاده از کوکی :

بصورت پیش فرض SessionID ها در کوکی هایی بدون تاریخ انقضا نگهداری می شوند . اما می توانید با تعیین خاصیت Cookieless در المنت Session State فایل Web.Config سایت به مقدار true ، کاری کنید تا این متغیرها به جای ذخیره بصورت کوکی ، همراه با آدرس ( URL ) مرورگر ارسال شوند . در این حالت Asp.Net ، شناسه Session ID را در آدرس مرورگر می گنجاند . برای مثال آدرس URL زیر حاوی یک شناسه Session ID با مقدار lit3py55t21z5v55vlm25s55 است .

کد www.example.com/s(lit3py55t21z5v55vlm25s55)/orderform.aspx

نحوه کارکرد Asp.Net در هنگام قرار گرفتن SessionID در URL :

Asp.Net تمامی لینک هایی که در درخواست ارسال به سرور همراه با متغیر Session هستند ( به جز لینک های صریح و اصلی ) را با اضافه کردن مقدار SessionID ویرایش کرده و سپس ارسال می کند . تا زمانی که کاربر با صفحات و URL هایی مرتبط با درخواست کار کند ، SessionID نیز همراه لینک ها جا به جا می شود . اما اگر به یکباره کاربر آدرس جدیدی را در مرورگر تایپ نماید ، Asp.Net دیگر قادر به خواندن SessionID نبوده و یک Session جدید ایجاد می شود .
نکته : SessionID همواره بعد از کاراکتر / و دقیقا بعد از دامنه سایت یا نام پروژه و قبل از نام هرگونه فایل یا پوشه ای قرار می گیرد ( همانند مثال فوق ) .
همچنین کد زیر نحوه تنظیم یک وب سایت Asp.Net برای ارسال Session ID ها بدون استفاده از کوکی و در قالب آدرس صفحات را از طریق فایل Web.Config نشان می دهد .

کد <configuration>
    <system.web>
        <sessionState cookieless="true"
        regenerateExpiredSessionId="true" />
    </system.web>
</configuration>


راجع این مطلب سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...         >>>>>  ورود به انجمن تخصصی


نطر خودتان درباره این صفحه را با ما در میان گذاشته و در صورت تمایل از Developer1 حمایت نمایید :

آیا مطالب این صفحه برای شما مناسب و مفید بوده است :

نام :                 
آدرس Email :    
 
نظر شما :  
 
سوال امنیتی : پایتخت ایران ؟      
حمایت از سایت Developer1