close
تبلیغات در اینترنت
خرید دامنه
ذخيره و بازيابی اطلاعات کاربران در برنامه های وب


امروز: پنجشنبه 06 اردیبهشت 1397
عنوان عکس اسلایدر عنوان عکس اسلایدر عنوان عکس اسلایدر
تاریخ: شنبه 25 دي 1389
بازدید: 387

ذخيره و بازيابی اطلاعات کاربران در برنامه های وب

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

شناسائی  کاربران برنامه هاب وب

يکی از روش هائی که برنامه های وب را قادر به شناسائی کاربران می نمايد، الزام کاربران  به درج نام و رمز عبور بمنظور استفاده از برنامه می باشد. برنامه های وب ، همچنين قادر به شناسائی کاربران از طريق اطلاعات ذخيره شده بر روی کامپيوتر کاربران  و به شکل "کوکی " می باشند. کوکی ، فايل کوچکی بوده  که يک برنامه وب قادر به نوشتن آن  بر روی کامپيوتر سرويس گيرنده است .

از مهمترين مزايای کوکی ، می توان به تعامل نامحسوس با  کاربر اشاره نمود. در چنين مواردی ، کاربران  هر مرتبه که سايت را ملاقات می نمايند ، الزامی به  Log on ، نخواهند داشت . ( اطلاعات آنان ، بصورت اتوماتيک و در صورت ضرورت در دسترس و قابل استفاده است) . مهمترين نقطه ضعف در جهت  استفاده از  کوکی ، به تنظيم مرورگرها توسط کاربران بمنظور عدم پذيرش کوکی، برمی گردد .برخی از کاربران تمايل و علاقه ای به  ذخيره سازی اطلاعات از طريق يک سايت بر روی کامپيوتر خود را نداشته و تصور می نمايند  که ممکن است از اطلاعات فوق ، بمنظور رديابی آنان در زمان استفاده از اينترنت ، سوء استفاده  گردد. بنابراين در موارديکه قصد استفاده از کوکی وجود داشته باشد ، می بايست در ابتدا توانائی سرويس گيرنده برای پذيرش کوکی بررسی گردد .

در زمان استفاده از کوکی بمنظور ذخيره و بازيابی اطلاعات کاربران ، می توان  از دو رويکرد متفاوت استفاده نمود :

·          ذخيره تمامی اطلاعات کاربران بعنوان يک کوکی بر روی ماشين سرويس گيرنده. استفاده از روش فوق ، درموارديکه اطلاعات کاربر ساده بوده و سرويس دهنده ضرورتی به استفاده از آنان بمنظور تکميل عمليات خود نداشته باشد ، می تواند مفيد باشد .

·         ذخيره يک کليد شناسائی بر روی ماشين سرويس گيرنده و بازيابی ساير  اطلاعات کاربر از طريق يک منبع داده بر روی سرويس دهنده با توحه به کليد شناسائی .

در ادامه به بررسی هر يک از رويکردهای فوق ، خواهيم پرداخت.

ذخيره سازی اطلاعات کاربران بر روی سرويس گيرنده
برای ذخيره  يک کوکی  بر روی ماشين سرويس گيرنده ، مراحل زير را دنبال می نمائيم :

  • بررسی و حصول اطمينان از توانائی  سرويس گيرنده بمنظور پذيرش کوکی ( استفاده از خصلت Cookies مربوط به شی مرورگر) .
  • در صورت حمايت  سرويس گيرنده از کوکی ، بررسی وجود کوکی بر روی ماشين سرويس گيرنده ( استفاده از مجموعه Cookies مربوط به شی Request )
  • در صورت عدم وجود کوکی ، ايجاد يک کوکی جديد با استفاده از کلاس HttpCookie .
  • مقداردهی مناسب  خصلت های Expiration و Value .
  • افزدون شی Cookie به مجموعه Cookies مربوط یه شی Response .

برنامه زير( روتين مربوط به رويداد Page_Load ) ، نحوه ايجاد يک کوکی و تشخيص آخرين مرتبه ملاقات سايت توسط کاربر را نشان می دهد.در برنامه فوق ، بررسی لازم در خصوص پديرش کوکی از طرف سرويس گيرنده ، صورت گرفته و در صورتيکه اولين مرتبه است که کاربر سايت را ملاقات می نمايد ، يک کوکی جديد ايجاد و در غير اينصورت ، کوکی ايجاد شده ، بهنگام می گردد.

 

VB.NET

Private Sub Page_Load ( ByVal Sender As System.Object , ByVal  e  As  System.EventArgs ) Handles Mybase.Load
     If   Request.Browser.Cookies Then
           If  Request.Cookie ("LastVisit")  Is Nothing  Then
                Dim CookLastVisit As New HttpCookie( " LastVisit" , Now.ToString ( ) )
                CookLastVisit.Expires = DateTime.Now.AddDays( 1 )
                Response.Cookie.Add (CookLastVisit )
                Response.Write( " First Visit " )
           Else
                 Dim CookLastVisit As HttpCookie = Request.Cookies ("LastVisit")
                 Reuest.Cookies( "LastVisit " )
                 Response.write ( "You last visited this page : " ,CookLastVisit.value )
                 Response.Cookies ( "LastVisit ").Value = Now.ToString ( )
                 Response.Cookies ( "LastVisit").Expires = DateTime.Now.AddDays(1)
            End If
      Else
            Response.Write ( "Your Browser does not accept cookies . " )
      End If
 End Sub          

کوکی ها نسبت به حروف بزرگ و کوچک حساس می باشند . مثلا" LastVisit  مشابه کوکی Lastvisit نمی باشد .خصلت Expires ، نشاندهنده تاريخ مصرف کوکی می باشد. عمر يک کوکی بصورت پيش فرض ، محدود به زمانی است که Session  کاربر خاتمه می يابد. درصورت تنظيم Expires بصورت DateTime.MaxValue ، اعتبار کوکی ايجاد شده، هرگز  به اتمام نخواهد رسيد .  بمنظور حذف کوکی از ماشين سرويس گيرنده ، می توان مقدار خصلت Expires را به زمان جاری تغيير داد .کد زير ، کوکی LastVisit  را حذف می نمايد.

VB.NET

Private Sub Page_Load ( ByVal Sender As System.Object , ByVal  e  As  System.EventArgs ) Handles  butRemoveCookie.Click
      Response.Cookies( "LastVisit").Expires = DateTime.Now
End Sub

 

 

استفاده از کليد بهمراه کوکی

يک کوکی ، قادربه ذخيره سازی 4096 بايت اطلاعات بوده و می توان بمنظور شناسائی اطلاعات همراه کوکی از کليد ها ، استفاده نمود. برنامه زير ، مشخصات  کاربر را در يک کوکی با استفاده از  کليدهای جداگانه ای ذخيره می نمايد .

VB.NET

Private Sub Page_Load ( ByVal Sender As System.Object , ByVal  e  As  System.EventArgs ) Handles butOK.Click
     Dim CookUserInfo  As New HttpCookie ("UserInfo")
     CookUserInfo("FirstName") = txtFirstName.Text
     CookUserInfo("LastName") = txtLastName.Text
     CookUserInfo("Street") = txtStreet.Text
     CookUserInfo("City") = txtCity.Text
     CookUserInfo("state") = drpstate.Selected.Item.value
     CookUserInfo("Zip") = txtZip.Text
     CookUserInfo.Expires = DateTime.Now.AddDays ( 30 )
     Response.Cookies.Add( CookUserInfo )
End Sub
 

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

VB.NET

Private Sub Page_Load ( ByVal Sender As System.Object , ByVal  e  As  System.EventArgs ) Handles butGetData.Click
     Dim CookUserInfo  As New HttpCookie ("UserInfo")
     txtFirstName.Text = CookUserInfo("FirstName")
     txtLastName.Text  = CookUserInfo("LastName")
     txtStreet.Text = CookUserInfo("Street")
     txtCity.Text  = CookUserInfo("City")
     drpstate.Selected.Item.value = CookUserInfo("state")
     txtZip.Text  = CookUserInfo("Zip") = txtZip.Text
 End Sub

ذخيره سازی اطلاعات کاربران بر روی سرويس دهنده

برای ذخيره اطلاعات کاربران بر روی سرويس دهنده ، می توان از کوکی بعنوان يک ابزار شناسائی ( ايندکس ) بمنظور ذخيره و بازيابی اطلاعات کاربران بر روی سرويس دهنده   در يک بانک اطلاعاتی ، يک فايل XML و ساير امکانات ذخيره سازی داده ، استفاده نمود. برای ذخيره اطلاعات کاربران بر روی سرويس دهنده ، مراحل زير را دنبال می نمائيم :

  • ايجاد يک کليد منحصر بفرد بمنظور شناسائی کاربر
  • ذخيره کليد منحصر بفرد بعنوان يک کوکی بر روی ماشين کاربر
  • ايجاد يک فايل بر روی سرويس دهنده بمنظور ذخيره سازی اطلاعات کاربران
  • ذخيره اطلاعات کاربران بر روی سرويس دهنده با استفاده از کليد منحصربفرد بعنوان يک ايندکس

در ادامه به بررسی هر يک از مراحل فوق ، خواهيم پرداخت .


ايجاد کليدهای منحصر بفرد بمنظور شناسائی کاربران

فريمورک دات نت ، Namespace با نام System.Guid را بمنظور ايجاد شناسه های منحصربفرد سراسری (  GUID ) ارائه نموده است . GUID ، يک عدد صحيح 128 بيتی بوده که بعنوان  شناسه ای  منحصربفرد در شبکه ايفای وظيفه می نمايد . از GUID می توان بمنظور شناسائی  تمامی چيزها از جمله  کاربران استفاده نمود . کد زير ، يک GUID را ايجاد و آن را بعنوان يک کوکی بر روی کامپيوتر کاربر و بمنظور شناسائی وی در آينده ، ذخيره می نمايد .

VB.NET

Private Sub Page_Load ( ByVal sender As System.Object , ByVal  e  As  System.EventArgs ) Handles butOK.Click
     Dim cookUserID  As HttpCookie = Request.Cookies ( "UserID")
          If  cookUserID   Is Nothing  Then
                cookUserID = New HttpCookie ("UserID") , System.Guid.NewGuid ( ). ToString ( ) )
                cookUserID.Name = "UserID"
          End If
      cookUserID.Expires = DateTime.Now.AddDays( 30 )
      Response.Cookies.Add (cookUserID )
      SetUserInfo (cookUserID.Value )
 End Sub           

 

 

ايجاد يک فايل بمنظور ذخيره اطلاعات کاربران

مهمترين هدف ذخيره سازی اطلاعات کاربران، بازيابی آنان با سرعت مناسب و پس از ملاقات مجدد کاربران از سايت و يا اجرای برنامه وب است . با توجه به اينکه اين نوع از کاربران با استفاده از يک کليدمنحصربفرد،  شناسائی می گردند ، می توان چنين تصور نمود که دستيابی به داده از طريق يک Data set انجام خواهد شد. Data set ، با استفاده از متد Find ، قادر به بازيابی سطرهائی از داده  بکمک کليدها ی منحصربفرد می باشد . استفاده از يک Data set ، بدان معنی است که فايل ايجاد شده بر روی سرويس دهنده ، می بايست يک بانک اطلاعاتی و يا يک فايل XML باشد . استفاده از فايل های XML در موارديکه داده های مورد نظر برای ذخيره سازی اندک بوده و روابط بين اقلام اطلاعاتی نيز پيچيده نباشد ، توصيه می گردد .

برای ايجاد يک فايل XML ، بمنظور ذخيره سازی اطلاعات کاربران ، مراحل زير را دنبال می نمائيم :

  • ايجاد يک فايل XML در ويژوال استوديو دات نت شامل داده تستی برای هر يک از فيلدهای داده که قصد ثبت آنان در ارتباط با کاربر وجود دارد .
  • ايجاد يک XML schema  برای فايل XML ايجاد شده در مرحله قبل. با استفاده از  XML schema ، يک Data Set قادر به مراجعه داده موجود در فايل XML  بر اساس نام می باشد .
  • مشخص نمودن فيلد کليد در XML schema . بدين ترتيب،امکان يافتن رکوردهای استفاده کننده از فيلد فوق با استفاده از متد Find ،فراهم می گردد .
  • خواندن XML schema  و فايل XML  درون يک Data set .

ايجاد يک فايل XML

برای ايجاد يک فايل XML در ويژوال استوديو ، گزينه Add New Item را از طريق منوی Project انتخاب و در ادامه XML File  را از طريق  ليست تمپليت های  نمايش داده شده ، انتخاب می نمائيم .  فايل های XML ، شباهت زيادی به فايل های HTML داشته و در اين راستا تفاوت های مهمی نظير حساسيت نسبت به حروف بزرگ و کوچک و پيروی از يک گرامر خاص ، نيز وجود دارد. از تگ های <element> و <element / >  بمنظور معرفی عناصر داده در يک فايل XML استفاده می گردد . کد زير، نحوه ايجاد يک فايل XML بمنظور ذخيره سازی مشخصات  کاربر را نشان می دهد .

VB.NET


 
   
    Ali
    Irani
     Sabz
      Tehran
      Tehran
      3240
              12345678
   

 

ايجاد يک XML Schema

بمنظور استفاده از فايل XML بهمراه يک Data Set ، می بايست در ابتدا يک XML Schema برای Data set ايجاد گردد. XML Schema ، مسئوليت تشريح عناصر داده ئی  موجود در يک فايل XML را بر عهده دارد. XML Schema ،  نام عناصر ، نوع آنان ،کليد بودن فيلد و ساير اطلاعات ضروری را ارائه می نمايد . برای ايجاد XML Schema  از يک فايل XML ، زمانيکه فايل XML در پنجره طراحی ويژوال استوديو دات نت ، فعال است ، گزينه Create Schema را از طريق منوی XML ، انتخاب می نمائيم . در ادامه ، ويژوال استوديو دات نت ، فايل Schema را بمنظور تشريح فايل XML  ايجاد می نمايد .

                     نظر یادتون نره


برچسب ها : ,,,,,,,,

مطالب مرتبط

بخش نظرات این مطلب

این نظر توسط e30 در تاریخ 1389/10/25 و 12:49 دقیقه ارسال شده است

e30

salam khoobi shoma mamnoon mishma ba ham tabadol link konim webloge qashangi darid mamnoon misham be manam sar bezanid
azizi bye


نام
ایمیل (منتشر نمی‌شود) (لازم)
وبسایت
:) :( ;) :D ;)) :X :? :P :* =(( :O @};- :B /:) :S
نظر خصوصی
مشخصات شما ذخیره شود ؟ [حذف مشخصات] [شکلک ها]
کد امنیتی