( تعداد نمایش : 1006 )

نحوه عملکرد کوکی های سفارشی Cookies ASP .NET

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

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

  • ذخیره حجم اندکی از اطلاعات : صرفا” امکان ذخیره حجم اندکی از اطلاعات به صورت متن در آنها وجود دارد .

  • عدم ایمن بودن : در صورتی که کاربر کوکی و فایل مربوط به آن را پیدا می کند ، می تواند به سادگی به آن دستیابی پیدا نماید ( خواندن ، حذف ) .

  • امکان حذف آنها توسط کاربران : همواره این احتمال وجود خواهد داشت که کاربران اقدام به حذف کوکی های موجود بر روی کامپیوتر خود نمایند .

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

  • وابسته به تنظیمات کاربر : برخی از کاربران امکان ایجاد کوکی را از طریق مرورگر خود غیرفعال می نمایند . این کار می تواند مسائل متعددی را برای برنامه های وب به دنبال داشته باشد .

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

نحوه ذخیره و بازیابی اطلاعات
فرآیند ذخیره و بازیابی اطلاعات در یک کوکی به سادگی انجام می شود . اشیاء Request و Response یک مجموعه Cookies را ارائه می نمایند . کوکی ها از طریق شی Request بازیابی و مقداردهی آنها از طریق شی Response انجام می شود . برای مقداردهی یک کوکی ، صرفا” می بایست یک شی جدید HttpCookie را ایجاد کرد . در ادامه می توان اطلاعات مورد نظر را در آن و از نوع رشته ذخیره و به پاسخ فعلی وب اضافه کرد .

‘ ایجاد شی کوکی
Dim cookie As New HttpCookie(“Preferences”)
‘ مقداردهی کوکی
cookie(“LanguagePref”) = “English”
‘ اضافه کردن کوکی به پاسخ جاری وب
Response.Cookies.Add(cookie)

کوکی فوق تا زمانی که کاربر مرورگر را close نکند ،  وجود خواهد داشت و با هر درخواست ارسال می گردد . برای ایجاد یک کوکی با طول عمر بیشتر ، می توان برای آن یک تاریخ سررسید را تعریف کرد ( عمر مفید ) .

‘ مدت زمان حیات کوکی یک سال تعیین شده است
Cookie.Expires = DateTime.Now.AddYears(1)

برای بازیابی کوکی ، می توان از طریق نام استفاده شده در مجموعه Request.Cookies اقدام نمود.

‘ بررسی وجود کوکی قبل از دستیابی به آن
Dim language As String
If
Cookie IsNot Nothing Then
language = Cookie(“LanguagePref”)
End If

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

Dim cookie As New HttpCookie(“LanguagePref”)
cookie.Expires = DateTime.Now.AddDays(-1)
Response.Cookies.Add(cookie)

مثال
در این مثال هدف آشنائی با نحوه ایجاد ، مقداردهی و بازیابی یک کوکی است .
در اولین مرتبه ای که صفحه درخواست می گردد به دلیل عدم وجود کوکی مورد نظر ، پیام “کاربر ناشناس ” نمایش داده شده و با ارائه یک text box این امکان در اختیار کاربر گذاشته می شود تا نام مورد نظر خود را جهت ذخیره در کوکی درج نماید . پس از این کار و همزمان با درخواست صفحه و با توجه به وجود کوکی مورد نظر ، یک پیام خوش آمدگوئی نمایش داده می شود . کوکی ایجاد شده در این مثال به مدت یک سال از تاریخ ایجاد ، اعتبار خواهد داشت .
عملیات تشخیص وجود کوکی و نمایش یک پیام خوش آمدگوئی از طریق روتین Page_Load انجام می شود . روتین cmdStoreCookiee_Click مسئولیت ایجاد کوکی و تعیین یک تاریخ اعتبار برای آن را برعهده دارد  .

صفحه CookieExample.aspx
<%@ Page Language=”VB” Culture=”fa-IR” UICulture=”fa-IR” %>

<script runat=”server”>

Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) _
Handles
MyBase.Load
Dim Cookie As HttpCookie = Request.Cookies(“Preferences”)
If Cookie Is Nothing Then
lblWelcome.Text = “<b>کاربر ناشناس</b>”
Else
lblWelcome.Text = “<b>کوکی موجود است </b><br><br>”
lblWelcome.Text &= “خوش آمدید, “ & Cookie(“Name”)
End If
End
Sub

Protected Sub cmdStoreCookiee_Click(ByVal sender As Object, ByVal e As EventArgs) _
Handles cmdStoreCookie.Click
Dim Cookie As HttpCookie = Request.Cookies(“Preferences”)
If Cookie Is Nothing Then
Cookie = New HttpCookie(“Preferences”)
End If
Cookie(“Name”) = txtName.Text
Cookie.Expires = DateTime.Now.AddYears(1)
Response.Cookies.Add(Cookie)
lblWelcome.Text =
“<b>کوکی ایجاد گردید</b><br><br>”
lblWelcome.Text &= “کاربر جدید : “ & Cookie(“Name”)
End Sub</script>

<html xmlns=”http://www.w3.org/1999/xhtml” dir=”rtl” >
<
head runat=”server”>
<
title>تست کوکی</title>
</
head>
<
body style=”font-family: Tahoma”>
<
form id=”form1″ runat=”server”>
<
asp:Label ID=”lblWelcome” runat=”server” EnableViewState=”False” Font-Names=”Tahoma” >
</
asp:Label><br />&nbsp;<br />
نام:<asp:TextBox ID=”txtName” runat=”server” Width=”178px” Font-Names=”Tahoma”>
</
asp:TextBox><br /><br />
<
asp:Button ID=”cmdStoreCookie” runat=”server” Text=”ایجاد کوکی” Font-Names=”Tahoma” />
</
form>
</
body>
</
html>

شکل ۱ ، نحوه عملکرد برنامه فوق را در اولین مرتبه دستیابی ( و با فرض عدم وجود کوکی ) نشان می دهد .

StateManagement6 نحوه عملكرد كوكی های سفارشی Cookies ASP .NET
شکل ۱ : نحوه عملکرد کوکی های سفارشی

و اما  آخرین نکته این که ، برخی از ویژگی های ارائه شده در ASP. NET با استفاده از کوکی خدمات خود را ارائه می نمایند .  session state  که به پیاده کنندگان اجازه می دهد بطور موقت اطلاعات مرتبط با کاربر را در حافظه سرویس دهنده ذخیره نمایند و  امنیت فرم ها که این امکان را در اختیار پیاده کنندگان قرار می دهد تا بخش هائی از یک وب سایت را محدود به کاربران تائید شده نمایند ، دو نمونه متداول در این رابطه می باشند .
در بخش هشتم  به بررسی Session State  خواهیم پرداخت .

دیدگاه خود را بیان کنید.

باید وارد سایت شده باشید برای دیدگاه دادن