PDA

View Full Version : مقاله جامع: اعمال متداول با کوکی ها



Behrouz_Rad
جمعه 26 فروردین 1384, 18:35 عصر
در مقاله زیر سعی کردم تا اعمال متداولی را که برنامه نویسان ASP.NET با کوکی ها در هنگام ایجاد یک Web Application سر و کار

دارند، توضیح دهم.

این مقاله شامل:

1) ایجاد کوکی
2) بازیابی مقدار یا مقادیر ذخیره شده در یک کوکی
3) تعیین مدت زمان عمر کوکی
4) تعیین مسیر ذخیره کوکی (مهم)
5) ویرایش محتویات کوکی
6) حذف کوکی
7) حذف زیرکلید (SubKey) از کوکی
------------------------------------------------------
کد استفاده شده: C#.NET
------------------------------------------------------

ایجاد کوکی:
کوکی به شکل زیر ایجاد می شود:


HttpCookie myCookie = new HttpCookie("myCookieName");

در این حالت، کوکی ایجاد شده اما هنوز در آن هیچ کلید و مقداری وجود ندارد.
کد زیر، دو کلید با دو مقدار مختلف را در کوکی ایجاد شده می نویسد.


myCookie.Values.Add("car", "door");
myCookie.Values.Add("computer", "mouse");

حال باید کوکی را به سمت کلاینت فرستاد.


Response.Cookies.Add(myCookie);


------------------------------------------------------

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


Response.Write(myCookie.Value.ToString());

اما در صورتی که بیش از یک کلید در کوکی ذخیره شده باشد، در صورتی که از کد فوق برای بازیابی مقدار کوکی استفاده کنیم،

نتیجه زیر حاصل می شود:


car=door&computer=mouse

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


Response.Write(myCookie["car"].ToString());


------------------------------------------------------

تعیین مدت زمان عمر کوکی:
مدت زمان عمر کوکی، مدت زمانی است که کوکی در سیستم کلاینت باقی می ماند بعد از آن از بین می رود و یکی از مهمترین

خواص کوکی هاست.
نکته مهم: در صورتی که مدت زمان عمر یک کوکی تعیین نشود، پس از بسته شدن مرورگر، کوکی نیز از بین می رود.
دستور زیر، مدت زمان عمر کوکی را 12 ساعت پس از زمان جاری تعیین می کند:


myCookie.Expires = DateTime.Now.AddHours(12);

به عنوان مثالی دیگر، دستور زیر عمر کوکی را تا یک هفته تعیین می کند:


myCookie.Expires = DateTime.Now.AddDays(7);


------------------------------------------------------

تعیین مسیر ذخیره کوکی:
توجه بسیار مهم: منظور از مسیر ذخیره کوکی، آدرس سایت یا مسیر خاصی از سایت است که کوکی تنها در صورت ورود کلاینت به

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

سایت، قابل بازیابی است.
کد زیر مشخص می کند که کوکی، تنها در مسیر forums/ سایت قابل بازیابی است.


myCookie.Path = "/forums";

همچنین می توان مسیر بازیابی کوکی را برای زیر دامنه ی خاصی از سایت تعیین کرد.


myCookie.Domain = "forums.myWebSite.com";


------------------------------------------------------

ویرایش محتویات کوکی:
تنها راه برای ویرایش محتویات یک کوکی، ایجاد یک کوکی جدید با نام قبلی و بازنویسی مجدد مقدار کلید قبلی بر روی آن است.

------------------------------------------------------

حذف کوکی:
متد مشخصی برای حذف کوکی وجود ندارد.
تنها راه حذف یک کوکی، تعیین زمان انقضای کوکی، به قبل از زمان یا تاریخ تعیین شده برای انقضای کوکی است.
مثال:


myCookie.Expires = DateTime.Now.AddDays(-1);


------------------------------------------------------

حذف زیرکلید (SubKey) از کوکی:
عمل حذف یک زیر کلید از کوکی، شامل سه مرحله است:
1) بازیابی کوکی
2) خذف کلید مورد نظر
3) بازنویسی مجدد کوکی



myCookie = Request.Cookies["myCookieName"];
myCookie.Values.Remove("car");
Response.Cookies.Add(myCookie);


موفق باشید.
:)

h.r.m
دوشنبه 29 فروردین 1384, 10:48 صبح
دست شما درد نکنه خسته نباشید :موفق: :تشویق:

Amir Ali
جمعه 02 اردیبهشت 1384, 11:43 صبح
بابا ای ول :flower:

هادی123
دوشنبه 23 مرداد 1385, 14:52 عصر
اگر بخواهیم کوکی را در WindowsApplication ایجاد کنیم چه باید کرد؟

amirfahmideh
سه شنبه 07 شهریور 1385, 06:19 صبح
ممنون آقا برای کوکی واقعا سنگ تموم گذاشتین ..

خدا خیرتون بده

hamed_bostan
دوشنبه 02 مهر 1386, 16:53 عصر
اگر بخواهیم کوکی را در WindowsApplication ایجاد کنیم چه باید کرد؟


ایا امکان این کار هست؟

Behrouz_Rad
دوشنبه 02 مهر 1386, 20:58 عصر
این کار معنا نداره...

kimiask
یک شنبه 22 شهریور 1388, 16:25 عصر
لطفا بعد از پايان دوره هاي آموزشي مستندات آنها را در سايت قرار داده تا بچه هاي شهرستان هم بتوانند از آنها استفاده كنند با تشكر فراوان
شرمنده جاش اينجا نبود ولي مجبوربودم يك جوري بگم!

saha_h2001
دوشنبه 21 آذر 1390, 00:34 صبح
سلام
ممنون از زحماتتون

fakhravari
چهارشنبه 07 دی 1390, 10:54 صبح
با سلام
چرا قالب نمایش کد ها خرابه!Remove("