كوكی های سفارشی و نحوه عملكرد آنها New Page 1



ساير




 

 

 

SAKHA RAVESH CO.

 ا مروز

 سه شنبه  28  دی  1395  2017  Jan.  17   Tuesday ToDay
صفحه اصلی  مقالات نکته هادايره المعارف خودآموزها | تازه ها خود آزمون ها    
  نسخه قابل چاپ  

    5 4 3 2 1 

 عنوان

 نويسنده

  مشاهده

 تعداد آراء

 امتياز

 State Management در ASP. NET 2.0 (بخش هفتم)

 مديريت وب

11431

8

3.5

با توجه به جایگاه داده در عصر حاضر و  لزوم نگاه جامع به این مقوله مهم ، بر آن شدیم تا محوریت فعالیت های خود را بر  روی این موضوع متمرکز نمائیم . از این رو گروه فابک با شعار فناوری اطلاعات برای کسب وکار شکل گرفت و  خدمات خود  را از طریق  سایت www.fabak.ir  به مخاطبان محترم عرضه می نماید

 

State Management در ASP. NET 2.0

State Management در ASP. NET 2.0 (بخش هفتم)
آنچه تاكنون گفته شده است :

 بخش اول

 مفاهيم اوليه

:

 ضرورت مديريت state در برنامه های وب

 بخش دوم  

 view state   

:  نحوه ايمن سازی اطلاعات ذخيره شده در view state
 بخش سوم  

view state

: نحوه نگهداری Member Variables و اشياء سفارشی
 بخش چهارم

cross-page posting

: انتقال اطلاعات از يك صفحه به صفحه ای ديگر
 بخش پنجم

cross-page posting

: نحوه دريافت اطلاعات  از صفحه مبداء
 بخش ششم

Query String

:  نحوه انتقال اطلاعات بين صفحات

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

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

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

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

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

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

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

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

نحوه ذخيره و بازيابی اطلاعات
فرآيند ذخيره و بازيابی اطلاعات در يك كوكی به سادگی انجام می شود . اشياء 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>

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

نحوه عملكرد كوكی های سفارشی
شكل 1 : نحوه عملكرد كوكی های سفارشی

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



جستجو

مقالات                 
دايره المعارف       
دوره های آموزشی


 

 

مشاهده گروه ها



              

 

 تهيه شده در شرکت سخا روش -  1382