تبلیغات
آموزشASP.NET - State Management در ASP. NET 2.0 (بخش هفتم)
 
فردا روشن اسن به
آموزشASP.NET
صفحه نخست         تماس با مدیر         پست الکترونیک        RSS         ATOM
 
 
سه شنبه 24 اسفند 1389 :: نویسنده : ارش کاکاوند
در این بخش با كوكی های سفارشی و نحوه عملكرد  آنها برای ذخیره و بازیابی اطلاعات آشنا خواهیم شد .

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

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

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

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

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

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

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





نوع مطلب :
برچسب ها :
لینک های مرتبط :


سه شنبه 14 شهریور 1396 06:04 ب.ظ
Hi, this weekend is pleasant designed for me, because this point in time i am reading this great informative article here at my house.
چهارشنبه 1 شهریور 1396 01:52 ب.ظ
I have read some just right stuff here. Definitely worth bookmarking for revisiting.
I surprise how so much attempt you place to create this kind of excellent informative site.
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر


درباره وبلاگ

سلام من آرش کاکاوند دانشجوی رشته کامپیوتر هستم و ورود شما رابه دنیای aspخوش امدمیگم.حتما نظر بدین تا من کارم رو بهتر ادامه بدم

مدیر وبلاگ : ارش کاکاوند
مطالب اخیر
نویسندگان
صفحات جانبی
نظرسنجی
شما کدام یک از برنامه های زیر را برای طراحی وب انتخاب می کنید؟








جستجو

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