شما می توانید با عضویت در انجمن پرسش و پاسخ درسمن هرگونه سوالی دارید را مطرح کنید

صفحه اصلی / مقالات / آموزشی / کوکی ها (Cookies) در ASP.NET

کوکی ها (Cookies) در ASP.NET

تاریخ بروزرسانی : دوشنبه 23 اردیبهشت 1398

تعداد بازدید : 313

گروه دوره : برنامه نویسی وب

زمان خواندن مقاله : 5 دقیقه

در این مقاله بررسی می شود که کوکی ها برای چه کاری استفاده می شوند و آیا امن هستند یا نه، که در ادامه انواع آنها، راه های استفاده از کوکی، دریافت یا خواندن آن، حذف کردن کوکی، محدودیت های آن، مزایا و معایب آن نیز توضیحاتی گفته می شود که امیدوارم تا حدودی مشکلات شما در بحث کوکی ها را برطرف کند.

کوکی ها (Cookies) در ASP.NET

کوکی ها (Cookies) در ASP.NET

کوکی ها یکی از روش های ذخیره اطلاعات برای کاربر می باشد.

برای آشنا شدن بهتر با کوکی ها یک مثال رایج که در وب سایت ها وجود دارد را بیان می کنیم، در بیشتر وب سایت ها زمانیکه شما می خواهید وارد پنل کاربری خود شوید یک چک باکس  با عنوان "مرا بخاطر بسپار" وجود دارد که اگر قبل از ورود به پنل کاربری خود تیک آن را علامت بزنید یک کوکی با شناسه شما ساخته شده و بروی کامپیوتر شخصی خودتان ذخیره می گردد (به اصطلاح می توان گفت یک بلیط با اطلاعاتی که وارد کردید صادر میگردد) و در دفعات بعدی که شما قصد داشته باشید مجددا وارد پنل کاربری خود شوید چک می کند که اگر کوکی روی سیستم شما وجود داشته باشد و تاریخ انقضای آن تمام نشده باشد بدون وارد کردن اطلاعات، پنل شما را باز خواهد کرد.

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

کوکی به صورت فایل هستند و حجم آنها کم است ، از سمت سرور ارسال می شوند و توسط مرورگرها برروی سیستم کاربر ذخیره می شوند.

 

آیا کوکی برای ذخیره داده ها امن هستند؟

به صورت قطعی نمی توان به این سوال پاسخ داد که بله یا خیر، زیرا که هکرها می توانند داده های یک کوکی را برداشته و آن را به نفع خود تغییر دهند . برروی کوکی ها برنامه ی خاصی برای مدیریت وجود ندارد.

کوکی دارای یک نام اسن و زمانیکه بخواهیم از کوکی استفاده کنیم یک نام برای آن انتخاب می کنیم و مقدار مورد نظر را در آن قرار می دهیم و یک زمان انقضاء هم دارد که آن را نیز مشخص می کنیم.

 

انواع Cookies:

1- زمانی (session): بعضی از کوکی ها روی حافظه مرورگر ذخیره می شوند و با بستن مرورگر حیات آن ها به پایان می رسد.

2- دائمی (persistant): این نوع کوکی ها برروی هارددیسک ذخیره می شوند و تاریخ انقضاء دارند اما کاربر می تواند هروقت که خواست کوکی را حذف کند.

 

 

راه های استفاده از کوکی ها:

1- کلاس HttpCookies:

ابتدا یک نام مشخص می کنیم و یک مقدار بران آن در نظر میگیریم حالا باید زمان انقضاء کوکی را تعیین نماییم و در آخر با دستوری که در زیر نوشته شده است آن را در سیستم کاربر ذخیره کنیم.


HttpCookie StudentCookies = new HttpCookie("StudentCookies");   نام

StudentCookies.Value = TextBox1.Text;    مقدار

StudentCookies.Expires = DateTime.Now.AddHours(1);  تاریخ انقضاء به مدت یک ساعت

Response.Cookies.Add(StudentCookies);  ذخیره سازی برروی سیستم کاربر

 

2- Response directly:

 

Response.Cookies["StudentCookies"].Value = TextBox1.Text;

Response.Cookies["StudentCookies"].Expires = DateTime.Now.AddDays(1);

 

در روش های بالا ما یک نام و یک مقدار برای کوکی انتخاب و ذخیره کردیم اگر بخواهیم در کوکی چند مقدار نگه داری کنیم از روش بعدی استفاده می کنیم.

 

 

3- ذخیره چند مقدار در کوکی :

 

Response.Cookies["StudentCookies"]["RollNumber"] = TextBox1.Text;

Response.Cookies["StudentCookies"]["FirstName"] = "Abhimanyu";

Response.Cookies["StudentCookies"]["MiddleName"] = "Kumar";

Response.Cookies["StudentCookies"]["LastName"] = "Vatsa";

Response.Cookies["StudentCookies"]["TotalMarks"] = "499";

Response.Cookies["StudentCookies"].Expires = DateTime.Now.AddDays(1);

 

 

 

در این روش ابتدا کوکی ایجاد می کنیم و هر تعداد که خواستیم key به آن اضفه می کنیم کوکی هایی که در بالا تعریف کردیم از طریق کلید خود قابل دسترسی هستند .

 

دریافت یا خواندن مقدار Cookies:

ما در بالا به سه روش کوکی ایجاد کردیم و بروی سیستم کاربر ذخیره کردیم حالا می خواهیم اطلاعات ذخیره شده را بخوانیم:

روش اول :

;string roll = Request.Cookies["StudentCookies"].Value

 

 

روش دوم :

 

string roll;

roll = Request.Cookies["StudentCookies"]["RollNumber"];

roll = roll + " " + Request.Cookies["StudentCookies"]["FirstName"];

roll = roll + " " + Request.Cookies["StudentCookies"]["MiddleName"];

roll = roll + " " + Request.Cookies["StudentCookies"]["LastName"];

roll = roll + " " + Request.Cookies["StudentCookies"]["TotalMarks"];

Label1.Text = roll;

 

 

حذف کوکی :

تا الان ما توانستیم به چند روش مختلف کوکی را بسازیم و اطلاعات آن را هم بخوانیم ، حالا می خواهیم کوکی را حذف کنیم ، ابتدا باید چک کنیم کوکی null نباشد و در صورت null  نبودن آن را حذف کنیم:

 

if (Request.Cookies["StudentCookies"] != null)

   {

      Response.Cookies["StudentCookies"].Expires = DateTime.Now.AddDays(-1);

       Response.Redirect("Result.aspx");         //to refresh the page

    }

 

 

محدودیت کوکی :

 1- اندازه آنها محدود است ، حداکثر اندازه کوکی 4096 بایت است.

2- هر وب سایت فقط می تواند 20 کوکی برروی سیستم کاربر ذخیره کند، اگر بیشتر از 20 کوکی برروی یک سیستم ذخیره شود جایگزین کوکی های قدیمی تر خواه شد.

3- کاربر می تواند کوکی خود را غیرفعال کند، پس قبل از استفاده کردن کوکی باید وضعیت کاربر چک شود و به کاربر اعلام شود که کوکی خود را فعال کند.

* یکی از ویژگی های کلاس HttpCookies، ویژگی Domain است که مقدار آن را زمانی تنظیم می کنیم که سایت ما SubDomain داشته باشد، اگر مقدار Domain تعیین نشده باشد SubDomain ها نمی توانند به کوکی دسترسی داشته باشد ، پس مقدار Domain به صورت زیر است:

Response.Cookies["StudentCookies"].Domain=”.yoursite.com”;

 

بعضی وقت ها کاربر کوکی خود را غیرفعال می کند اما بعضی اوقات این مرورگر است که نمی تواند کوکی را بپذیرد و لازم است که ابتدا مرورگر را بررسی کنیم که اگر کوکی دریافت نمی کند به کاربر یک پیغام بدهیم ، به صورت زیر:

 

protected void Page_Load(object sender, EventArgs e)

{

   if (Request.Browser.Cookies)

    {

        //supports the cookies

    }

    else

    {

        //not supports the cookies

        //redirect user on specific page

        //for this or show messages

    }

}

 

اما ما نباید اطلاعات حساس را در کوکی ذخیره کنیم.

 

مزایای کوکی :

کوکی ها از کامپیوتر کاربر استفاده می کنند و این خوب است.

 

معایب کوکی :

1- حجم کمی اطلاعات می توان روی آن ذخیره کرد.

2- ایمن نبودن آن که توضیح داده شد.

3- کاربر می تواند آن را حذف کند.

4- محدودیت در برخی از مرورگرها.

5- وابسته بودن به تنظمیات کاربر.


اشتراک گذاری


توضیحاتی در مورد نویسنده این مقاله :
مرتضی احمدوند مرتضی احمدوند

مدرک کارشناسی کامپیوتر(نرم افراز)،دارای سابقه کار در شرکت آریا نرم‌افزار،تخصص‌ها: Html,css,js,csharp,ASP.NET طراحی و کدنویسی سایت درسمن و.....مدتی مقاله نویسی در زمینه برنامه نویسی را نیز انجام میدهم.


نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد .
برای ارسال نظر نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.

گروه مقالات


آموزشی
11
علمی
7
تحقیقاتی
3


به دنبال هر آموزشی هستید در اینجا به دنبال آن باشید .