کوکی ها برای ذخيره مقدار کمی اطلاعات بر روی دستگاه مشتری (CLIENT) استفاده می شوند. يك کوکی می تواند حداکثر تا 4 کيلو بايت را ذخيره کند. بطور کلّی کوکی ها برای ذخيره داده هايی که اغلب کاربر تايپ می کند استفاده می شوند، از قبيل اسم کاربری و پسورد برای لاگين در سايت.
دو نوع کوکی وجود دارد: زمانی (session) و دائمی (persistent ). کوکی های زمانی کوکی های موقتی نيز خوانده می شوند که در حافظه مرورگر ذخيره می شوند و زمان حیات آنها به مرورگر بستگی دارد. هنگامی که شما مرورگر را می بنديد اين کوکی ها هم می ميرند. از طرف ديگر کوکی های پايدار بر روی هارد ديسک با اطلاعات تاریخ ذخيره می شوند و برای زمان درازی می توانند زنده بمانند. هنگامی که شما کوکی های پايدار را ايجاد می کنيد شما می توانيد زمان زندگی کوکی را نيز تعیین کنيد. اگر چه مدتی که شما تعیین می کنيد تا کوکی زنده بماند قطعی نيست. همچنين اگر چه کوکی ها شئهای مفيدی در دنيای وب هستند امّا آنها برخی محدودیت هایی هم دارند. مثلاً کوکی ها نمی توانند اطلاعات زيادی را در خود ذخيره کنند.
همچنين کوکی ها وابسته به مرورگرها هستند به اين معنی که کوکی کاربردی در برخی مرورگرها نمی تواند کار کند. شما می توانيد زمان زندگی يک کوکی را تعیین کنيد اما نمی توان تضمين کرد که کوکی در آنجا برای مدت طولانی در دسترس باشد. بنابراين ذخيره اطلاعات مهم در کوکی ها ايده خوبی نيست.
ساختن و خواندن کوکیها
كلاس HttpCookie در فضانام System.Web تعريف شده است که کوکی ها را نمايش می دهد. خواص کوکیها مثل Response و Request می تواند در خواندن تمام کوکی ها به کار رود بطوريکه شئ HttpCookieCollection می تواند همه کوکی ها را نمايش می دهد.
همانند دیگر کلاس ها کلاس HttpCookieCollection اضافه کردن حذف کردن و خواندن کوکی ها را از مجموعه برای اعضا فراهم می کند. شما می توانيد يک کوکی توسط کلاس HttpCookie با مشخص کردن نام و مقدار کوکی به صورت رشته ای ايجاد کنيد. يا شما می توانيد از خواص Name و Value برای نام و مقدار کوکی استفاده کنيد. خاصيت Expires کلاس HttpCookie يک کوکی پايدار می سازد و زمانی را که کوکی از بين خواهد رفت مشخص می کند. در قطعه کد زير دوتا کوکی می سازد به نام UID وPASS. شما در اين کد می توانيد ببينيد که ما کوکی ها را به مجموعه توسط تابع Response.Cookies.Add اضافه می کنيم:
کد:
Listing 1. Creating cookies
' ساختن اسم کاربری و پسورد کوکی ها
' دادن مقدار به آنها و اضافه کردن به مجموعه
Dim cookie As HttpCookie = New HttpCookie("UID")
cookie.Value = "myid"
cookie.Expires = #9/28/2002#
Response.Cookies.Add(cookie)
cookie = New HttpCookie("PASS")
cookie.Value = "mypass"
cookie.Expires = #9/28/2002#
Response.Cookies.Add(cookie)
شما می توانيد کوکی ها را با استفاده از صفت Request.Cookies بخوانيد. قطعه کد زير کوکی را از مرورگر می خواند و آنها را به کنترل ListBox اضافه میکند:
کد:
Listing2 . Read cookies
' خواندن کوکی ها
Dim cookieCols As New HttpCookieCollection()
cookieCols = Request.Cookies
Dim str As String
' خواندن و اضافه کردن تمام کوکی ها به لیست باکس
For Each str In cookieCols
ListBox1.Items.Add("Cookie: " + str)
ListBox1.Items.Add("Value:" & _
Request.Cookies(str).Value)
Next
شما می توانيد از توابع Clear و Remove در HttpCookieCollection برای حذف کوکی خاص يا همه کوکی ها استفاده کنيد. قطعه کد زير با استفاده از تابع Remove کوکیها را حذف می کند:
کد:
Listing3 . Deleting cookies
Dim cookieCols As New HttpCookieCollection()
cookieCols = Request.Cookies
Dim str As String
' خواندن و حذف تمام کوکی ها از لیست باکس
Request.Cookies.Remove("PASS")
Request.Cookies.Remove("UID")
يک کوکی همچنين می تواند چندين مقدار را ذخيره کند. اين نوع کوکی، کوکی ديکشنری ناميده می شود. شما می توانيد از صفت Values برای ايجاد و خواندن اين نوع کوکی ها استفاده کنيد. کد زير يک کوکی ديکشنری می سازد.
کد:
Listing4 . Creating a dictionary cookie
Dim cookDict As HttpCookie = New HttpCookie("dict")
cookDict.Values("fname") = "first name"
cookDict.Values("lname") = "last name"
cookDict.Values("Address") = "address"
Response.Cookies.Add(cookDict)
منبع: Asp.Heaven
علاقه مندی ها (Bookmarks)