جستجو در محصولات

گالری پروژه های افتر افکت
گالری پروژه های PSD
جستجو در محصولات


تبلیغ بانک ها در صفحات
ربات ساز تلگرام در صفحات
ایمن نیوز در صفحات
.. سیستم ارسال پیامک ..
State Management در ASP. NET 2.0 (بخش هفتم)
-(41 Body) 
State Management در ASP. NET 2.0 (بخش هفتم)
Visitor 685
Category: کامپيوتر

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  خواهيم پرداخت .

برگرفته از سايت سخا روش

Add Comments
Name:
Email:  
User Comments:
SecurityCode: Captcha ImageChange Image