تور لحظه آخری
امروز : یکشنبه ، 17 تیر 1403    احادیث و روایات:  امام علی (ع):علم میراث گرانبهائی است و ادب لباس فاخر و زینتی است و فکر آئینه ای است صاف.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

اتاق فرار

خرید ووچر پرفکت مانی

تریدینگ ویو

کاشت ابرو

لمینت دندان

ونداد کولر

صرافی ارکی چنج

صرافی rkchange

دانلود سریال سووشون

دانلود فیلم

ناب مووی

رسانه حرف تو - مقایسه و اشتراک تجربه خرید

سرور اختصاصی ایران

تور دبی

دزدگیر منزل

تشریفات روناک

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

پیچ و مهره

طراحی کاتالوگ فوری

دانلود کتاب صوتی

تعمیرات مک بوک

Future Innovate Tech

آموزشگاه آرایشگری مردانه شفیع رسالت

پی جو مشاغل برتر شیراز

قیمت فرش

آموزش کیک پزی در تهران

لوله بازکنی تهران

میز جلو مبلی

هتل 5 ستاره شیراز

آراد برندینگ

رنگ استخری

سایبان ماشین

قالیشویی در تهران

مبل استیل

بهترین وکیل تهران

شرکت حسابداری

نظرسنجی انتخابات 1403

استعداد تحلیلی

کی شاپ

خرید دانه قهوه

دانلود رمان

وکیل کرج

آمپول بیوتین بپانتین

پرس برک

بهترین پکیج کنکور

خرید تیشرت مردانه

خرید نشادر

خرید یخچال خارجی

وکیل تبریز

اجاره سند

وام لوازم خانگی

نتایج انتخابات ریاست جمهوری

خرید ووچر پرفکت مانی

خرید سی پی ارزان

خرید ابزار دقیق

بهترین جراح بینی خانم

تاثیر رنگ لباس بر تعاملات انسانی

خرید ریبون

 






آمار وبسایت

 تعداد کل بازدیدها : 1805270451




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

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


واضح آرشیو وب فارسی:راسخون:
ذخيره و بازيابی اطلاعات کاربران در برنامه های وب
ذخيره و بازيابی اطلاعات کاربران در برنامه های وب مهمترين رسالت برنامه های کامپيوتری ارتباط با کاربران و پاسخگوئی به نياز آنان با توجه به پتانسيل های پيش بينی شده در برنامه می باشد. شناسائی کاربران توسط برنامه های کامپيوتری می تواند زمينه ارائه سرويس ها و خدمات بهينه تری را فراهم نمايد( ارائه سرويس ها و خدمات مشخص شده به گروهی خاص از کاربران ) . برنامه های وب نيز از اين قاعده مستثنی نبوده و با توجه به ماهيت Stateless بودن پروتکل ارتباطی بين سرويس گيرنده و سرويس دهنده ( ارسال درخواست ، پاسخ به درخواست ، عدم بخاطر سپردن اطلاعاتی در ارتباط با در خواست ارسالی و پاسخ دريافتی ) ، می بايست تمهيدات خاصی بمنظور شناسائی کاربران اتخاذ گردد. برخی از برنامه های وب ، کاربران را ملزم می نمايند که در ابتدا يک فرم را تکميل و اصطلاحا" ريجستر گردند . در چنين برنامه هائی ، در صورتيکه کاربر مجددا" از برنامه وب استفاده نمايد ( ملاقات مجدد وب سايت مربوطه ) ، امکان شناسائی کاربر با بهره گيری از راهکارهای متفاوتی وجود خواهد داشت ( شناسائی کاربر بر اساس بازيابی اطلاعات ثبت شده ) . وب سايتی را در نظر بگيريد که از طريق آن محصولاتی عرضه و توسط کاربران خريداری می گردد . در زمان خريد کالا توسط کاربران ، سايت موردنظر می تواند اقدام به دريافت اطلاعات خريدار و ثبت آنان بر اساس مکانيزمهای متفاوت نمايد . در صورتيکه کاربر فوق ، مجددا" از اين سايت کالائی را خريداری نمايد ، می توان اطلاعات مربوط به وی را (اطلاعات شناسنامه ای ، آدرس و ... ) بصورت اتوماتيک در فرم سفارش جديد، درج نمود . شناسائی کاربران برنامه هاب وب يکی از روش هائی که برنامه های وب را قادر به شناسائی کاربران می نمايد، الزام کاربران به درج نام و رمز عبور بمنظور استفاده از برنامه می باشد. برنامه های وب ، همچنين قادر به شناسائی کاربران از طريق اطلاعات ذخيره شده بر روی کامپيوتر کاربران و به شکل "کوکی " می باشند. کوکی ، فايل کوچکی بوده که يک برنامه وب قادر به نوشتن آن بر روی کامپيوتر سرويس گيرنده است . از مهمترين مزايای کوکی ، می توان به تعامل نامحسوس با کاربر اشاره نمود. در چنين مواردی ، کاربران هر مرتبه که سايت را ملاقات می نمايند ، الزامی به Log on ، نخواهند داشت . ( اطلاعات آنان ، بصورت اتوماتيک و در صورت ضرورت در دسترس و قابل استفاده است) . مهمترين نقطه ضعف در جهت استفاده از کوکی ، به تنظيم مرورگرها توسط کاربران بمنظور عدم پذيرش کوکی، برمی گردد .برخی از کاربران تمايل و علاقه ای به ذخيره سازی اطلاعات از طريق يک سايت بر روی کامپيوتر خود را نداشته و تصور می نمايند که ممکن است از اطلاعات فوق ، بمنظور رديابی آنان در زمان استفاده از اينترنت ، سوء استفاده گردد. بنابراين در موارديکه قصد استفاده از کوکی وجود داشته باشد ، می بايست در ابتدا توانائی سرويس گيرنده برای پذيرش کوکی بررسی گردد . در زمان استفاده از کوکی بمنظور ذخيره و بازيابی اطلاعات کاربران ، می توان از دو رويکرد متفاوت استفاده نمود :• ذخيره تمامی اطلاعات کاربران بعنوان يک کوکی بر روی ماشين سرويس گيرنده. استفاده از روش فوق ، درموارديکه اطلاعات کاربر ساده بوده و سرويس دهنده ضرورتی به استفاده از آنان بمنظور تکميل عمليات خود نداشته باشد ، می تواند مفيد باشد .• ذخيره يک کليد شناسائی بر روی ماشين سرويس گيرنده و بازيابی ساير اطلاعات کاربر از طريق يک منبع داده بر روی سرويس دهنده با توحه به کليد شناسائی .در ادامه به بررسی هر يک از رويکردهای فوق ، خواهيم پرداخت.ذخيره سازی اطلاعات کاربران بر روی سرويس گيرنده برای ذخيره يک کوکی بر روی ماشين سرويس گيرنده ، مراحل زير را دنبال می نمائيم : • بررسی و حصول اطمينان از توانائی سرويس گيرنده بمنظور پذيرش کوکی ( استفاده از خصلت Cookies مربوط به شی مرورگر) . • در صورت حمايت سرويس گيرنده از کوکی ، بررسی وجود کوکی بر روی ماشين سرويس گيرنده ( استفاده از مجموعه Cookies مربوط به شی Request ) • در صورت عدم وجود کوکی ، ايجاد يک کوکی جديد با استفاده از کلاس HttpCookie . • مقداردهی مناسب خصلت های Expiration و Value . • افزدون شی Cookie به مجموعه Cookies مربوط یه شی Response . برنامه زير( روتين مربوط به رويداد Page_Load ) ، نحوه ايجاد يک کوکی و تشخيص آخرين مرتبه ملاقات سايت توسط کاربر را نشان می دهد.در برنامه فوق ، بررسی لازم در خصوص پديرش کوکی از طرف سرويس گيرنده ، صورت گرفته و در صورتيکه اولين مرتبه است که کاربر سايت را ملاقات می نمايد ، يک کوکی جديد ايجاد و در غير اينصورت ، کوکی ايجاد شده ، بهنگام می گردد. VB.NETPrivate 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.NETPrivate 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.NETPrivate 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.NETPrivate 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.NETPrivate 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<?xml version="1.0" encoding="utf-8" ?> <USERS xmlns="http://tempuri.org/userprefs.xsd">    <USER>    <FIRSTNAME> Ali </FIRSTNAME>    <LASTNAME> Irani </LASTNAME>     <STREET> Sabz </STREET>      <CITY> Tehran </CITY>      <STATE> Tehran </STATE>      <ZIP> 3240</ZIP>              <ID> 12345678 </ID>    </USER></USERS> ايجاد يک XML Schema بمنظور استفاده از فايل XML بهمراه يک Data Set ، می بايست در ابتدا يک XML Schema برای Data set ايجاد گردد. XML Schema ، مسئوليت تشريح عناصر داده ئی موجود در يک فايل XML را بر عهده دارد. XML Schema ، نام عناصر ، نوع آنان ،کليد بودن فيلد و ساير اطلاعات ضروری را ارائه می نمايد . برای ايجاد XML Schema از يک فايل XML ، زمانيکه فايل XML در پنجره طراحی ويژوال استوديو دات نت ، فعال است ، گزينه Create Schema را از طريق منوی XML ، انتخاب می نمائيم . در ادامه ، ويژوال استوديو دات نت ، فايل Schema را بمنظور تشريح فايل XML ايجاد می نمايد .مشخص نمودن يک فيلد کليد با افزودن يک کليد اوليه به XML Schema ، امکان جستجو فراهم خواهد شد .بدين منظور ، مراحل زير را دنبال می نمائيم : • کليک سمت راست بر روی عنصر مورد نظری که می خواهيم بعنوان فيلد کليد در نظر گرفته شود.انتخاب گزينه Add و در ادامه New Key . ويژوال استوديو ، جعبه محاوره ای Edit Key را نمايش خواهد داد . • گزينه Dataset Primary Key را انتخاب و دکمه OK را فعال می نمائيم . بدين ترتيب ، امکان استفاده از متد Find مربوط به شی DataSet بمنظور بازيابی سطرهائی از Data set ، فراهم می گردد.خواندن XML درون يک Data Set پس از ايجاد فايل XML و XML Schema ، امکان خواندن و ذخيره آن درون يک Data set ، فراهم می گردد. ( استفاده از متدهای ReadXml و ReadXmlSchema ) . برنامه زير ، تابعی را نشان می دهد که می توان از آن بمنظور برگرداندن يک Data Set از يک فايل XML با نام UserInfo ، استفاده نمود . VB.NETFunction GetUserData ( ) As DataSet      Dim strPath  As String = Server.MapPath( Request.ApplicationPath)      Dim dsUsers  As New DataSet ( )      dsUsers.ReadXmlSchema ( strPath & "UserInfo.xsd")     dsUsers.ReadXmlSchema ( strPath & "UserInfo.xml")     Return dsUsersEnd Function ذخيره اطلاعات کاربر بر روی سرويس دهنده بمنظور ذخيره سازی اطلاعات کاربران بر روی سرويس دهنده بصورت يک فايل XML ، می توان از متد SaveXML مربوط به شی Data set استفاده نمود. روتين SetUserInfo ( جدول زير ) ، از روتين GetUserData بخش قبل ،استفاده نموده تا يک Data set را از يک فايل XML دريافت نمايد. در ادامه ، با استفاده از متد Find ، بررسی لازم در خصوص وجود UserID در Data Set صورت می پذيرد.در صورتيکه UserID پيدا نگردد ، روتين SetUserInfo سطری را برای کاربر ( قبل از تنظيم مقادير متناظر با فيلدها از طريق کنترل های سرويس دهنده بر روی يک فرم وب )، اضافه می نمايد. در نهايت ، SetUserInfo ، تمامی داده را به سرويس دهنده برمی گرداند .  VB.NETSub SetUserInfo ( ByVal UserID  As String )       Dim strPath  As String = Server.MapPath( Request.ApplicationPath)       Dim dsUsers  As  DataSet = GetUserData ( )       Dim rowUser  As DataRow = dsUsers.Tables("User") .Rows.Find( UserID)       If  rowUser   Is Nothing Then            rowUser = dsUsers.Tables ("User") . NewRow           dsUsers.Tables ( "User").Rows.Add ( rowUser )      End If      rowUser ("FirstName") = txtFirstName.Text      rowUser ("LastName") = txtLastName.Text      rowUser ("Street") = txtStreet.Text      rowUser ("City") = txtCity.Text      rowUser ("state") = drpstate.Selected.Item.Text     rowUser ("Zip") = txtZip.Text      rowUser ( "ID" ) = UserID      dsUsers. Writexml ( strPath & "UserInfo.xml")End Sub بازيابی اطلاعات کاربران از يک Data Set بمنظور بازيابی اطلاعات کاربران از فايل XML ، از روتين GetUIserData برای ايجاد يک Data Set از فايل XML استفاده می گردد . در ادامه ، می توان با استفاده از متد Find بمنظور بازيابی سطر مرتبط با UserID استفاده نمود . روتين GetUserInfo ( جدول زير) ، اطلاعات کاربر را از Data Set بازيابی و با استفاده از آن ، کنترل های سرويس دهنده موجود بر روی يک فرم وب را مقداردهی می نمايد . VB.NETSub GetUserInfo ( ByVal UserID  As String )       Dim  dsUsers As Data.DataSet = GetUserData ( )       Dim   rowUser  As Data.DataRow = dsUsers.Tables("user").Rows.Find(UserID)      If  rowUser   Is Nothing Then  Exit Sub       txtFirstName.Text  = rowUser.Item("FirstName")       txtLastName.Text   = rowUser.Item("LastName")       txtStreet.Text  = rowUser.Item("Street")       txtCity.Text = rowUser.Item("City")       drpstate.Selected.Item.Text = rowUser.Item("State")       txtZip.Text  = rowUser.Item("Zip") End Sub





این صفحه را در گوگل محبوب کنید

[ارسال شده از: راسخون]
[مشاهده در: www.rasekhoon.net]
[تعداد بازديد از اين مطلب: 581]

bt

اضافه شدن مطلب/حذف مطلب







-


گوناگون

پربازدیدترینها
طراحی وب>


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