درگذشته همه دیتاهای کاربران درون سرور ذخیره میشد. دیتاهایی که ممکن بود خیلی کم به آن نیاز پیدا کنیم و همین امر باعث میشد بار اضافه بر روی سرور بگذاریم همین مشکل باعث شد شیوه جدیدی برای ذخیرهسازی برخی اطلاعات به وجود بیاید به نام کوکیها.
در دوره رایگان و پروژه محور آموزش asp در فصل پروژه عملی کار با کوکی در asp.net core را آموزش دادهایم.
برای یادگیری کوکیها در asp.net cor این ویدئو رو تماشا کنید
کوکیها شیوه جدید ذخیرهسازی اطلاعات هستند (البته چند سالی هست که روی کار آمدهاند) در این روش اطلاعات بر روی سرور ذخیره نمیشوند بلکه برروی مرورگر خود کاربر ذخیره میشود و هروقت دیتا را لازم داشتیم از خود مرورگر کاربر میگیریم.
در فصل سوم از دوره رایگان مبانی وب کوکی ها را آموزش داده ایم.
توجه داشته باشید با هر request و response این کوکیها بین کلاینت و سرور جابهجا میشوند.
هر کوکی از دو بخش تشکیل شده key و value ما باید برای استفاده از کوکیها این دو مقدار را بهصورت رشتهای تعریف میکنیم.
به کد زید توجه کنید
Response.Cookies.Append ( “Message” , ”WellcomToBugeto” );
با کد بالا میتوانید یک کوکی در مرورگر کاربر ذخیره کنید که کلید آن Message و مقدار آن WellcomToBugeto است این سادهترین شکل کوکی است.
نوع حرفه ای و پیچیدهتر این کوکیها به این شکل است که میتوانیم تنظیماتی برای کوکیها اختصاص دهیم
به کد زیر توجه کنید
Response.Cookies.Append("Message", "welcome", new CookieOptions
{
HttpOnly = true,
Secure = Request.IsHttps,
Path = Request.PathBase.HasValue ? Request.PathBase.ToString() :"/",
Expires = DateTime.Now.AddDays(5),
});
در کد بالا ما یک سری تنظیمات برای کوکی قرار دادیم در ادامه پارامترهایی برای تنظیمات کوکیها را بررسی میکنیم
HttpOnly : این پارامتر بهصورت bool است و اگر مقدار آن true باشد فقط از طریق درخواستهای http میتوانیم به آن دسترسی داشته باشیم و با اسکریپتها این کار امکانپذیر نیست
Secure: این پارامتر نیز بهصورت bool است و اگر مقدار آن true باشد فقط از طریق پروتکلهایی که https هستند میتوان به کوکی دسترسی داشت و اگر بخواهم با هر دوی پروتکلهای http و https کار کنیم باید مقدار آن را بهصورت Secure = Request.IsHttps بدهیم
PATH:با این پارامتر میتوان مسیر کوکی را مشخص نمود. با کد مقابل میتوان مسیر جاری را به آن اختصاص داد و اگر مسیر جاری مقدار داشت همان را بهعنوان مسیر کوکی اختصاص میدهیم و اگر مقدار نداشت "/" را برای مسیر میدهیم یعنی مسیر جاری
Path = Request.PathBase.HasValue ? Request.PathBase.ToString() :"/"
Expires: این پارامتر مشخصکننده تاریخ انقضای کوکی است و بعد از تاریخ مقدار ورودی این کوکی بهصورت خودکار از مرورگر کاربر پاک میشود
*برای دیدن کوکیهای ذخیره شده در مرورگر میتوان از inspect و تب storage استفاده کرد
*اگر برای کوکی تاریخ انقضا مشخص نکنیم بهصورت پیشفرض مقدار session ذخیره میشود که به این معنی است که بعد از بستن مرورگر کوکی پاک میشود
*بعد از نوشتن کوکی ما نیاز داریم که به آن دسترسی داشته باشیم با کد زیر میتوان مقدار کوکی را به دستاورد البته روشهای دیگری برای بهدستآوردن مقدار کوکی وجود دارد که در این مقاله ما دو روش را آموزش خواهیم داد
روش اول: در این روش مقدار کوکی درون متغیر ریخته میشود
Var CookieValue=Request.Cookies[“KeyName”].ToString();
روش دوم: با این روش اگر کوکی با این کلید وجود داشته باشد مقدار true بر میگردد و درون متغیر ریخته میشود
String CookieValue;
Request.Cookies.TryGetValue(“KeyName”, Out CookieValue);
*برخی مواقع نیاز داریم که مقدار کوکی را بهصورت دستی پاک کنیم کد زیر این کار را برای ما انجام میدهد
Response.Cookies.Delete(“KeyName”);
برای افزودن دیدگاه خود، نیاز است ابتدا وارد حساب کاربریتان شوید