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

کوکی ها (Cookies) در ASP.NET
تاریخ بروزرسانی : 28 شهریور 1399 | تعداد بازدید : 7981 | زمان خواندن مقاله : 10 دقیقه
ASP.NET،

بایکی دیگر از مباحث برنامه نویسی وب به نام کوکی ها (Cookies) در ASP.NET خدمت شما عزیزان هستم. قبل از ورود به بحث کوکی در asp.net میخواهم شما را با واژه Cookie آشنا کنم تا بدانید کوکی ها چه هستند و کارآیی آنها چیست.
به راستی میدانید کوکی(Cookie) چیست؟
درچه مواردی از کوکی ها استفاده میشود؟
پیش به سوی یادگیری برای رسیدن به جواب سوالات…

تعریف کوکی:

کلمه کوکی از نام یک نوع شیرینی کلوچه مانند برداشته شده است ولی در بحث کامپیوتر و اینترنت به معنای داده های کوچک متنی هستند نه چیز دیگر که به درخواست وبسایت ها و توسط مرورگرها برای اعمال شناسایی، ذخیره یا خوانده شدن استفاده می شوند. اولین بار شرکت Netscape درسال 1994 از کوکی استفاده کرد و مایکروسافت درسال 1995 در مرورگر خود، این ابزار را به کار گرفت و امروزه تقریبا تمام مرورگرها ازجمله کروم، فایرفاکس و..... ازکوکی ها پشتیبانی می کنند.

آموزش سی شارپ

برای درک موضوع آن را با مثالی برایتان بیان میکنم:

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


باتعریف کوکی میتوان گفت که دو نوع کوکی وجود دارد:

  • First- person cookie (کوکی شخص اول): کوکی هایی که مستقیما به وب سایتی که باز کرده اید تعلق دارند.
  • Third-party cookie (کوکی شخص ثالث): کوکی هایی که به واسطه کدهای جاوا اسکریپت و برای ثبت فعالیت کاربر ایجاد میشوند و عموما برای سرویس های تبلیغاتی مورد استفاده قرار میگیرند.

اگر از دید دیگری بخواهیم کوکی ها را بخش بندی کنیم به دو دسته تقسیم میشوند:

  1. کوکی های موقت (session cookies): این کوکی ها تا زمانی که کاربر درحال بازدید است کاربرد دارند و با بسته شدن سایت منقضی می شوند.
  2. کوکی های دائمی (persistent cookies): این کوکی ها تا زمان تاریخ انقضا قابل استفاده برای مراجعه دفعات بعدی هستند.


کاربرد کوکی ها:

قبل از بیان کاربرد کوکی ها باید بگویم کوکی ها با نام های دیگر نیز شناخته میشوند مانند: کوکی مرورگر، کوکی وب، HTTP Cookie و... 

  • شناسایی کاربران برای جلوگیری از وجود مجددشان برای ورود خودکار
  • آمارگیری و جلوگیری از انجام یک عمل بیش از دفعات مشخص شده
  • انجام تنظیمات موقتی و شخصی سازی‌ها توسط کاربر

اهمیت و دلیل استفاده از کوکی ها:

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

اما چرا وجود مکانیزم کوکی بسیار مهم است؟ پاسخ به این سوال ساده است، چون HTTP یک پروتکل Stateless بوده و بین درخواست‌ها و پاسخ‌های آن هیچ ارتباط منطقی وجود ندارد؛ به عبارت ساده تر، این پروتکل فراموش کار است. راه حل این مشکل ایجاد یک نشست پایدار بین مرورگر و سرور است.

تعریف خلاصه نشست این است که یک ارتباط به صورت پایدار برقرار شده و به طرفین (در اینجا، معمولاً سرور) این امکان را می‌دهد که یکدیگر را شناسایی کنند که از نسخه HTTP 1/1 به بعد، مکانیزم کوکی وارد عمل شده و این نشست‌ها را با ذخیره کردن داده‌های متنی ساده، ایجاد می‌کند. به این ترتیب کاربر User1 با کاربر User2 به صورت کاملاً متمایز از یکدیگر، با سرور مرتبط شده و در نشست خود فعالیت می‌کنند. البته این مکانیزم می‌تواند از طرف کاربر غیرفعال شده و از ایجاد نشست از طریق کوکی جلوگیری کند.

 

پیاده سازی 0 تا 100 یک سایت خبری با آموزش asp.net mvc laugh

 

راه های استفاده از کوکی ها (Cookies) در ASP.NET:

بعد از آشنایی با مفهوم کوکی و کاربردهای آن و دلیل استفاده از آن به راه های استفاده از کوکی در asp.net میپردازیم.

  1. کلاس HttpCookies:

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

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

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

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

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

 

  1. Response directly:

 

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

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

 

  1. ذخیره چند مقدار در کوکی:

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

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);

 

دریافت یا خواندن مقدار کوکی ها (Cookies) در ASP.NET:

روش های ایجاد کوکی در asp.net را آموختیم و بر روی سیستم کاربر ذخیره کردیم حال میخواهیم اطلاعات ذخیره شده را بخوانیم که برای این کار به صورت زیر عمل می کنیم:

روش اول:

;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

 }
 

 

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

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


نکاتی که دانستن آنها ضروری است:

 

  1. یکی از ویژگی های کلاس HttpCookies، ویژگی Domain است که مقدار آن را زمانی تنظیم می کنیم که سایت ما SubDomain داشته باشد، اگر مقدار Domain تعیین نشده باشد SubDomain ها نمی توانند به کوکی دسترسی داشته باشند، پس مقدار Domain به صورت زیر است:
Response.Cookies["StudentCookies"].Domain=”.yoursite.com”;

  1. در بعضی مواقع کاربر کوکی خود را غیر فعال می کند یا مرورگر ویژگی پذیرفتن کوکی را ندارد که باید مرورگر کاربر بررسی شود و در صورت نپذیرفتن کوکی به کاربر پیغام دهد و یا آن را به صفحه دیگر انتقال دهد که کد انجام این کار به صورت زیر است:
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. ما نباید اطلاعات حساس را در کوکی ذخیره کنیم.

 

مزایا و معایب کوکی ها:

  • کوکی ها از کامپیوتر کاربر استفاده می کنند و این خوب است.
  • حجم کمی اطلاعات می توان روی آن ذخیره کرد.
  • ایمن نبودن آن که توضیح داده شد.
  • کاربر می تواند آن را حذف کند.
  • محدودیت در برخی از مرورگرها.
  • وابسته بودن به تنظمیات کاربر.

 

سخن پایانی:

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


کلمات کلیدی :
سی شارپ