نحوه استفاده از session state New Page 1



ساير




 

 

 

SAKHA RAVESH CO.

 ا مروز

 دوشنبه  8  خرداد  1396  2017  May  29   Monday ToDay
صفحه اصلی  مقالات نکته هادايره المعارف خودآموزها | تازه ها خود آزمون ها    
  نسخه قابل چاپ  

    5 4 3 2 1 

 عنوان

 نويسنده

  مشاهده

 تعداد آراء

 امتياز

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

 مديريت وب

12596

7

4.4

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

:  نحوه انتقال اطلاعات بين صفحات
 بخش هفتم  كوكی های سفارشی   نحوه عملكرد كوكی های سفارشی
 بخش هشتم 

Session State

  مفاهيم و معماری session

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

مثال
در اين مثال هدف آشنائی با نحوه ذخيره و بازيابی داده در session است . بدين منظور يك شی با نام Articles و شامل سه فيلد عمومی به شرح زير تعريف شده است  :

  • Title : عنوان يك مقاله را در خود ذخيره می نمايد .

  • Abstract : شرح مختصری از مقاله را در خود ذخيره می نمايد .

  • ViewCount : تعداد  دفعات مشاهده يك مقاله را مشخص می نمايد .

شی فوق از يك  constructor  خاص استفاده می نمايد تا فرآيند ايجاد و مقداردهی آن به سادگی انجام شود .

Public Class Articles

  Public Title As String
  Public
Abstract As String
  Public
ViewCount As Integer

  Public
Sub New(ByVal Title As String, ByVal Abstract As String, ByVal ViewCount As Integer)
    Me.Title = Title
    Me.Abstract = Abstract
    Me.ViewCount = ViewCount
  End Sub

End
Class

 اشياء Articles در زمان استقرار صفحه در حافظه ايجاد و در session state ذخيره می گردند . در ادامه و پس از انتخاب يك آيتم توسط كاربر از طريق ليست موجود ، شی مرتبط با آيتم انتخاب شده از session بازيابی و اطلاعات مرتبط با آن در خروجی نمايش داده می شود .

صفحه SessionStateExample.aspx


<
%@ Page Language="VB" Culture="fa-IR" UICulture="fa-IR" %>

<script runat="server">

Public
Class Articles
  Public Title As String
  Public
Abstract As String
  Public
ViewCount As Integer
  Public
Sub New(ByVal Title As String, ByVal Abstract As String, ByVal ViewCount As Integer)
     Me.Title = Title
     Me.Abstract = Abstract
     Me.ViewCount = ViewCount
  End Sub
End
Class

Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
 If Me.IsPostBack = False Then

مرحله اول : ايجاد اشياء '

   Dim ArticleInfo1 As New Articles("State Management در ASP. NET 2.0 (بخش هشتم) ", _
                                                " بررسی Session State ", 43)
   Dim
ArticleInfo2 As New Articles("State Management در ASP. NET 2.0 (بخش هفتم) ", _
                                             " كوكی های سفارشی و نحوه عملكرد آنها", 94)
   Dim
ArticleInfo3 As New Articles("State Management در ASP. NET 2.0 (بخش ششم) ", _
                                              " نحوه انتقال اطلاعات بين صفحات با استفاده از Query String", 103)
   Dim
ArticleInfo4 As New Articles(" State Management در ASP. NET 2.0 (بخش پنجم) ", _
                                                " نحوه دريافت اطلاعات از صفحه مبداء در cross-page posting", 99)

 مرحله دوم : اضافه كردن اشياء به session state  '

   Session("Article1") = ArticleInfo1
   Session(
"Article2") = ArticleInfo2
   Session(
"Article3") = ArticleInfo3
   Session(
"Article4") = ArticleInfo4

مرحله سوم :‌ اضافه كردن سطر به ليست  '

   lstItems.Items.Clear()
   lstItems.Items.Add(ArticleInfo1.Title)
   lstItems.Items.Add(ArticleInfo2.Title)
   lstItems.Items.Add(ArticleInfo3.Title)
   lstItems.Items.Add(ArticleInfo4.Title)

 End
If

 نمايش برخی اطلاعات پايه در رابطه با session  '
جهت بررسی اطلاعات پيكربندی '   

 Dim strCookieLess As String
 Dim
strNewSession As String

 If
Session.IsCookieless Then
    strCookieLess = "بلی"
 Else
    strCookieLess = "خير"
 End
If

 If
Session.IsNewSession Then
    strNewSession = "بلی"
 Else
   strNewSession = "خير"
 End
If

 
lblSession.Text = "شناسه : "
& Session.SessionID
 lblSession.Text &=
"<br>تعداد اشياء : "
 
lblSession.Text &= Session.Count.ToString()
 lblSession.Text &=
"<br>مد : "
& Session.Mode.ToString()
 lblSession.Text &=
"<br>آيا session ايجاد شده Cookieless است؟ "
 
lblSession.Text &= strCookieLess
 lblSession.Text &=
"<br> آيا session جديد است ؟ "
 
lblSession.Text &= strNewSession
 lblSession.Text &=
"<br> اعتبار session (بر حسب دقيقه ) : "
 
lblSession.Text &= Session.Timeout.ToString()
End
Sub

Protected Sub cmdMoreInfo_Click(ByVal sender As Object, ByVal e As EventArgs) Handles cmdMoreInfo.Click
If lstItems.SelectedIndex = -1 Then
    lblRecord.Text = "آيتمی انتخاب نشده است"
Else

 مرحله اول :ايجاد نام كليد صحيح بر اساس ايندكس '

  Dim Key As String
  Key = "Article"
& (lstItems.SelectedIndex + 1).ToString()

  مرحله دوم : بازيابی اشياء از session state '

  Dim ArticleInfo As Articles = CType(Session(Key), Articles)

 مرحله سوم : نمايش اطلاعات مرتبط با شی بازيابی شده  '

  lblRecord.Text = "عنوان مقاله :" & ArticleInfo.Title
  lblRecord.Text &=
"<br>شرح: "
 
lblRecord.Text &= ArticleInfo.Abstract
  lblRecord.Text &=
"<br>تعداد دفعات مشاهده : "
& ArticleInfo.ViewCount.ToString()

End If

End
Sub

</
script>

<
html
xmlns="http://www.w3.org/1999/xhtml" dir="rtl">
<
head
runat="server">
  <
title>تست session </title>
</
head>
<
body>
 <
form
id="form1" runat="server">
     <
asp:Label id="lblSession" runat="server" Width="472px" Height="61px" Font-Size="Smaller"
                     
Font-Names="Tahoma" Font-Bold="False"></asp:Label><br /><br />
 <
div
>
     <
asp:ListBox id="lstItems" runat="server" Width="345px" Height="106px"
                       
Font-Names="Tahoma"></asp:ListBox><br /> <br />
    <
asp:Button id="cmdMoreInfo" runat="server" Text="اطلاعات بيشتر "
                       
Font-Names="Tahoma"></asp:Button><br /><br /><br />
    <
asp:Label id="lblRecord" runat="server" Font-Size="Small"
                      
Font-Names="Tahoma" ></asp:Label>
 </
div>
 </
form>
</
body>
</
html>
 

شكل 1 نحوه عملكرد و خروجی برنامه فوق را نشان می دهد .

   نحوه عملكرد session state

شكل 1:  نحوه عملكرد session state

حتی المقدور می بايست از تعداد session اندكی در برنامه استفاده گردد چراكه مديريت آنها مستلزم انجام عمليات اضافه و استفاده از منابع محدود موجود در سمت سرويس دهنده است . پياده كنندگان برنامه های وب برای رفع اين نگرانی می توانند يك دكمه Log out را در صفحه مورد نظر خود پيش بينی نمايند تا پس از كليك  بر روی آن ، با استفاده از متد  Session.Abandon اقدام به حذف session گردد ( آزاد سازی حافظه سرويس دهنده زودتر از موعد مقرر و مشخص شده توسط خصلت Timeout ) .
در بخش دهم بحث خود را در ارتباط با session state  ادامه داده و با نحوه پيكربندی آن در برنامه های وب آشنا خواهيم شد .



جستجو

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


 

 

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



              

 

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