هایدی

مرجع دانلود فایل ,تحقیق , پروژه , پایان نامه , فایل فلش گوشی

هایدی

مرجع دانلود فایل ,تحقیق , پروژه , پایان نامه , فایل فلش گوشی

تحقیق درمورد کشورهای غیر متعهد

اختصاصی از هایدی تحقیق درمورد کشورهای غیر متعهد دانلود با لینک مستقیم و پر سرعت .

لینک دانلود و خرید پایین توضیحات

فرمت فایل word  و قابل ویرایش و پرینت

تعداد صفحات: 2

 

کشورهای غیر متعهد (non_aligned state otected countries)  

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

به کشورهای عضو جنبش عدم تعهد، کشورهای غیر متعهد می‎گویند. سران کشورهای غیر متعهد هر سه سال یکبار و کنفرانس وزرای امور خارجه غیرمتعهد در فاصله بین دو کنفرانس سران در پایتخت یکی از کشورهای عضو جنبش برگزار می‎شود.

اولین کنفرانس سران در سال 1961 با شرکت 25 کشور  در پایتخت یوگوسلاوی تشکیل شد رئیس کشور میزبان تا اجلاس بعدی، ریاست کشورهای غیر متعهد را عهده دار می‎شود. پیروی از سیاست همزیستی مسالمت‎آمیز ، پشتیبانی از جنبشهای آزادیبخش ، عدم پیوستگی به هیچیک از پیمانهای  نظامی در چارچوب اختلافات قدرتهای بزرگ از جمله مشخصات کشورهای غیر متعهد است.

به دنبال فروپاشی شوروی و پیمان ورشو، بعضی از کشورها مثل آرژانتین از جنبش کناره گیری کردند و کشورهای مثل هندوراس و تایلند به عضویت آن در آمدند. قرقیزستان به عنوان عضو ناظر و جمهوریهای چک و اسلواکی نیز به عنوان میهمان پذیرفته شدند. تا سال 1944 حدود 109 کشور عضو جنبش عدم تعهد بودند که مالت و قبرس از اروپا و بقیه از سه قارۀ آسیا ، آفریقا و آمریکای لاتین بودند.

اعضای اولیه جنبش عدم تعهد هند، یوگسلاوی، مصر و اندونزی بودند.

 

 

منابع:

1- آشوری، داریوش؛ دانشنامه سیاسی، تهران، مروارید   

2- فرهنگ علوم سیاسی، مرکز اطلاعات و آمار ایران

 


دانلود با لینک مستقیم


تحقیق درمورد کشورهای غیر متعهد

دانلود مقاله Session State

اختصاصی از هایدی دانلود مقاله Session State دانلود با لینک مستقیم و پر سرعت .

 

 

چکیده:

 

مفاهیم و چالش ها
در مدت زمان حیات یک برنامه به مواردی برخورد می کنیم که لازم است جهت ذخیره سازی اطلاعات از امکانات پیشرفته تری استفاده گردد . به عنوان مثال ، یک برنامه ممکن است به ذخیره اطلاعات پیچیده ای نظیر اشیاء سفارشی داده و استفاده از آنها در سایر صفحات نیاز داشته باشد . ارسال اینگونه اطلاعات از طریق کوکی و یا یک query string مشکل و یا غیرممکن است . علاوه بر این ، در برخی موارد ملاحظات امنیتی در رابطه با داده وجود دارد و نمی توان اطلاعات مربوط به یک سرویس گیرنده را در view state و یا کوکی ذخیره کرد .
در چنین مواردی می توان از امکانات از قبل تعبیه شده session state در ASP.NET استفاده کرد .
مدیریت session state یکی از ویژگی های برجسته ASP.NET است که به کمک آن می توان هر نوع داده ئی را در حافظه سرویس دهنده ذخیره کرد . بدین ترتیب ، یک سطح حفاظتی مطلوب در خصوص داده ایجاد خواهد شد چراکه اطلاعات برای سرویس گیرنده ارسال نخواهند شد و برای هر جلسه کاری منحصربفرد می باشند .
هر سرویس گیرنده ای که به برنامه دستیابی داشته باشد دارای یک session متفاوت و مجموعه ای از اطلاعات متمایز و مختص به خود است . session state برای ذخیره اطلاعاتی نظیر آیتم های خریداری شده توسط کاربر از یک سایت و استقرار آنها در سبد خرید در زمان حرکت از یک صفحه به صفحه دیگر بسیار مفید و موثر واقع می شود .
با استفاده از session state می توان اطلاعات مورد نظر را از طریق یک صفحه ذخیره و در سایر صفحات از آنها استفاده کرد .
با این که session state بسیاری از مشکلات در ارتباط با سایر روش های مدیریت state را برطرف نموده است ولی خود نیز دارای چالش های مختص به خود است . به عنوان مثال ، با بکارگیری روش فوق در برنامه های وب ، سرویس دهنده وب ملزم به ذخیره اطلاعات بیشتری در حافظه سرویس دهنده خواهد شد. این موضوع می تواند همزمان با افزایش کاربران یک برنامه بر روی کارآئی آن تاثیر بگذارد . چراکه درصد استفاده از یک منبع محدود ( حافظه ) افزایش خواهد یافت . بنابراین ، لازم است استفاده از session state با دقت و بررسی تمامی جوانب کار صورت پذیرید .
معماری session
مدیریت session به عنوان بخشی از استاندارد HTTP محسوب نمی گردد . بنابراین لازم است که ASP.NET عملیات بیشتری را به منظور پیگیری اطلاعات session انجام دهد .
ASP.NET هر session را از طریق یک شناسه 120 بیتی منحصربفرد پیگیری و از یک الگوریتم اختصاصی برای تولید آن استفاده می نماید . بنابراین حداقل این تضمین از لحاظ تئوری ایجاد می گردد که عدد تولید شده منحصر بفرد بوده و به اندازه کافی تصادفی است تا امکان و یا احتمال تشخیص و حدس آن توسط مهاجمان به حداقل مقدار خود برسد ( مهاجمان با بکارگیری روش هائی موسوم به مهندسی معکوس در تلاش جهت آگاهی از این موضوع هستند که یک سرویس گیرنده خاص از چه شناسه ای برای session استفاده می نماید ) .
شناسه ، تنها اطلاعات مبادله شده بین سرویس دهنده وب و سرویس گیرنده است . زمانی که سرویس گیرنده شناسه session خود را ارائه می نماید ، ASP.NET در اولین اقدام جستجو جهت یافتن session متناظر با آن را انجام می دهد . در صورتی که ماحصل فرآیند فوق مثبت باشد ، داده از state server بازیابی و به اشیاء مورد نظر تبدیل می گردد . در ادامه ، اشیاء فوق در یک مجموعه خاص استقرار می گردند تا امکان دستیابی به آنها از طریق کد وجود داشته باشد . فرآیند فوق بطور اتوماتیک انجام می شود .
شاید برای شما این سوال مطرح شده باشد که ASP.NET ، اطلاعات مربوط به session را در چه مکانی ذخیره و چگونه آنها را serialize و deserialize می نماید ؟ در ASP کلاسیک ، session state به عنوان یک شی COM پیاده سازی شده است که در کتابخانه asp.dll مستقر می گردد . در ASP.NET ، اینترفیس برنامه نویسی تقریبا" یکسان است ولی نحوه پیاده سازی آن با ASP کلاسیک کاملا" متفاوت است .
زمانی که ASP.NET یک درخواست HTTP را بررسی می نماید ، آن را از طریق مجموعه ای از مدول های مختلف که قادر به واکنش در خصوص رویدادهای برنامه می باشند ، به حرکت در می آورد . SessionStateModule ، یکی از مدول های موجود در این زنجیره است ( موجود در namespace با نام System.Web.SessionState ) . مدول فوق شناسه session را تولید ، داده session را از ارائه دهندگان خارجی state بازیابی و داده را به درخواست مورد نظر نسبت می دهد . همچنین مدول فوق ، اطلاعات مربوط به session را پس از اتمام پردازش صفحه ، ذخیره می نماید.
توجه داشته باشید که مدول SessionStateModule عملا" داده session را ذخیره نمی نماید . در واقع ، داده session در عناصر مجزاء نگهداری می گردد که به آنها state provider می گویند .
شکل 1 معماری session state در ASP.NET را نشان می دهد .

شکل 1 : معماری session state در ASP.NET
نکته آخر در ارتباط با معماری فوق نحوه پیگیری کوکی از یک درخواست به درخواست دیگر است . برای این که session state به درستی کار کند ، سرویس گیرنده می بایست شناسه session خود را همراه با هر درخواست ارائه نماید . بدین منظور از دو روش مختلف استفاده می گردد .

استفاده از session state
با استفاده از کلاس System.Web.SessionState.HttpSessionState که در یک صفحه ASP.NET به عنوان شی session از قبل تعبیه شده پیش بینی شده است ، می توان با session state ارتباط برقرار کرد . نحوه اضافه کردن و بازیابی داده در مجموعه session state همانند view state است .
مثلا" می توان یک Dataset را در session قرار داد . کد زیر نحوه انجام این کار را نشان می دهد .
Session("ds") = ds
کد زیر نحوه بازیابی و تبدیل داده ذخیره شده در session را نشان می دهد .
ds = Ctype(Session("ds"),DataSet)
امکان دستیابی به session state در تمامی برنامه و برای کاربر جاری امکان پذیر است . session state به دلایل متعددی ممکن است از بین رود :
• بستن و فعال کردن مجدد مرورگر توسط کاربر
• دستیابی به صفحه مشابه از طریق یک پنجره جداگانه مرورگر توسط کاربر
• اتمام تاریخ اعتبار session به دلیل عدم فعالیت کاربر در یک بازه زمانی خاص ( مقدار پیش فرض 20 دقیقه )
• خاتمه دادن به عمر مفید یک session از طریق کد و توسط برنامه نویس ( استفاده از متد Session.Abandon)
در دو مورد اول ، session همچنان در حافظه باقی خواهد ماند چراکه سرویس دهنده وب از بستن مرورگر و یا تغییر پنجره توسط کاربر آگاهی ندارد . در چنین مواردی ، session آخرین لحظات عمر خود را در حافظه طی می نماید و عملا" غیرقابل دسترس باقی می ماند تا زمانی که عمر آن به اتمام رسد .
علاوه بر موارد فوق ، زمانی که application domain مجددا" ایجاد گردد ، session state حذف خواهد شد . فرآیند فوق در زمان بهنگام سازی برنامه و یا تغییر در تنظیمات پیکربندی انجام می شود .
همچنین به منظور حصول اطمینان از صحت عملکرد برنامه ، application domain بطور ادواری بازسازی می شود . در صورتی که رویکرد فوق باعث بروز مسائلی می گردد ، می توان اطلاعات session state را به صورت out of process ذخیره کرد ( در بخش بعد در این رابطه توضیح خواهیم داد ) . در مدل نگهداری state به صورت out-of-process ، اطلاعات session حتی با غیرفعال شدن application domain همچنان باقی خواهند ماند .
جدول 1 ، متدها و خصلت های مختلف کلاس HttpSessionState را نشان می دهد

 

در بخش نهم بحث خود را در ارتباط با session state ادامه داده و به بررسی یک نمونه مثال کاربردی خواهیم پرداخت
________________________________________
State Management در ASP. NET 2.0 (بخش اول)
2در بخش هشتم با مفاهیم و معماری 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 نحوه عملکرد و خروجی برنامه فوق را نشان می دهد .

شکل 1: نحوه عملکرد session state
حتی المقدور می بایست از تعداد session اندکی در برنامه استفاده گردد چراکه مدیریت آنها مستلزم انجام عملیات اضافه و استفاده از منابع محدود موجود در سمت سرویس دهنده است . پیاده کنندگان برنامه های وب برای رفع این نگرانی می توانند یک دکمه Log out را در صفحه مورد نظر خود پیش بینی نمایند تا پس از کلیک بر روی آن ، با استفاده از متد Session.Abandon اقدام به حذف session گردد ( آزاد سازی حافظه سرویس دهنده زودتر از موعد مقرر و مشخص شده توسط خصلت Timeout ) .
در بخش دهم بحث خود را در ارتباط با session state ادامه داده و با نحوه پیکربندی آن در برنامه های وب آشنا خواهیم شد .
________________________________________
State Management در ASP. NET 2.0 (بخش دوم)
آنچه تاکنون گفته شده است :
در این بخش با نحوه پیکربندی session در برنامه های وب آشنا خواهیم شد.
پیکربندی session در برنامه های وب
پیاده کنندگان برنامه های وب برای پیکربندی session state می توانند از فایل web.config ( موجود در دایرکتوری مجازی شامل فایل های aspx . ) استفاده نمایند . با استفاده از فایل فوق می توان گزینه های پیشرفته ای نظیر timeout و مد session state را پیکربندی کرد . در صورتی که از ویژوال استودیو برای ایجاد یک برنامه وب استفاده شده باشد ، همزمان با ایجاد پروژه ، بطور اتوماتیک یک فایل web.config نیز ایجاد می گردد .
کد زیر یک نمونه فایل web.config را به همراه مهمترین خصلت های تاثیرگذار در پیکربندی session state را نشان می دهد .
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
...
<sessionState
cookieless="UseCookies" cookieName="ASP.NET_SessionId"
regenerateExpiredSessionId="false"
timeout="20"
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
stateNetworkTimeout="10"
sqlConnectionString="data source=127.0.0.1;Integrated Security=SSPI"
sqlCommandTimeout="30"
allowCustomSqlDatabase="false"
customProvider=""
/>
</system.web>
</configuration>
در ادامه به تشریح هر یک از خصلت های فوق خواهیم پرداخت .
Cookieless
مقدار خصلت فوق بر اساس شرایط زیر تعیین می گردد .
• UseCookies : گزینه پیش فرض است و همواره از کوکی استفاده خواهد شد حتی اگر مرورگر و یا دستگاه سرویس گیرنده از آن حمایت نکند و یا آن را غیرفعال کرده باشد . در صورتی که دستگاه سرویس گیرنده از کوکی حمایت نکند ، اطلاعات session در بین درخواست های متوالی گم می شود . چراکه هر درخواست یک ID جدید را خواهد گرفت .
• UseUri : از کوکی صرفنظر از قابلیت های مرورگر و یا دستگاه سرویس گیرنده استفاده نخواهد شد . در چنین مواردی ، شناسه session در یک URL ذخیره می گردد .
• UseDeviceProfile : معیار انتخاب ASP. NET جهت استفاده از cookieless session ، بررسی نتایج حاصل از بکارگیری شی BrowserCapabilities است . شی فوق صرفا" پتانسیل هائی را که دستگاه مورد نظر از آنها حمایت می نماید مشخص می کند ( خود را درگیر مواردی نظیر غیرفعال کردن کوکی توسط کاربر نمی کند ) .
• AutoDetect : در این روش ، در آغاز ASP. NET سعی می کند تشخیص دهد که آیا مرورگر از کوکی حمایت می نماید . بدین منظور یک کوکی بر روی کامپیوتر سرویس گیرنده ایجاد و در ادامه آن را بازیابی می نماید . ماحصل فرآیند فوق می تواند این موضوع را به اثبات رساند که مرورگر از کوکی حمایت می نماید ولی توسط کاربر غیر فعال شده است ( در چنین مواردی از مد cookieless استفاده می گردد )
کد زیر بر استفاده از مد cookieless تاکید می نماید ( مناسب برای تست ) .
<sessionState cookieless="UseUri" ...="" />
در مد cookieless ، شناسه session بطور اتوماتیک درون یک URL قرار می گیرد . زمانی که ASP. NET یک درخواست را دریافت می نماید ، شناسه آن را حذف ، مجموعه session را بازیابی و درخواست دریافتی را برای دایرکتوری مورد نظر ارسال می نماید .
با توجه به این که شناسه session درون URL جاری قرار می گیرد ، لینک های مربوطه نیر بطور اتوماتیک قادر به استفاده از شناسه session خواهند بود . به عبارت دیگر ، در صورتی که کاربر بر روی page1.aspx باشد و بر روی لینک مربوط به page2.aspx کلیک نماید ، لینک مربوطه شامل شناسه session جاری به عنوان بخشی از URL مورد نظر خواهد بود . سناریوی فوق در مواردی که از متد Response.Redirect به همراه یک URL نسبی استفاده شده باشد نیز صدق می کند .
Response.Redirect("Page2.aspx")
مثال
در این مثال با نحوه استفاده از session آشنا خواهیم شد . بدین منظور از دو صفحه با مد cookieless استفاده شده است ( در فایل web.config مقدار cookieless معادل " UseUri" در نظر گرفته شده است ) . اولین صفحه ( Cookieless1.aspx ) شامل یک کنترل Hyperlink و دو دکمه است . دومین صفحه ( Cookieless1.aspx) ، صفحه ای است که کاربر پس از کلیک بر روی یکی از گزینه های موجود به آن هدایت شده و پس از بازیابی session ، اطلاعات در خروجی نمایش داده می شود .
شکل 1 ، نحوه عملکرد صفحه Cookieless1.aspx را نشان می دهد .

شکل 1 ، نحوه عملکرد صفحه Cookieless1.aspx
• لینک به همراه مسیر نسبی : خصلت Hyperlink.NavigateUrl از طریق کد مقدار Cookieless1.aspx را می گیرد. در صورت کلیک بر روی لینک فوق ، شناسه session بازیابی و می توان از اطلاعات session در صفحه جدید ( Cookieless2.aspx) استفاده کرد .
• تغییر مسیر ( مسیر نسبی ) : تعییر مسیر از طریق کد با مد cookieless نیز کار می کند ( همانند بکارگیری یک مسیر نسبی ) . در مثال فوق از متد Response. Redirect برای هدایت کاربر به صفحه Cookieless2.aspx استفاده شده است . در صورت کلیک بر روی دکمه فوق ، شناسه session بازیابی و امکان استفاده از اطلاعات session در صفحه جدید فراهم می گردد . کد زیر نحوه انجام این کار را نشان می دهد .
Protected Sub cmdLink_Click(ByVal sender As Object,ByVal As EventArgs) Handles cmdLink.Click
Response.Redirect("Cookieless2.aspx")
End Sub
• تغییر مسیر ( مسیر مطلق ) : تنها محدودیت cookieless ، عدم امکان استفاده از لینک های absolute است . چراکه ASP. NET نمی تواند شناسه session را درون آنها قرار دهد . مثلا" در صورتی که بر روی دکمه دوم کلیک شود ، امکان استفاده از session جاری در صفحه Cookieless2.aspx وجود نخواهد داشت . کد زیر نحوه انجام این کار را نشان می دهد .
Protected Sub cmdLinkAbsolute_Click(ByVal sender As Object, ByVal e As EventArgs) Handles cmdLinkAbsolute.Click
Dim url As String = "http://" & Request.Url.Authority & _
Request.Url.Segments(0) & Request.Url.Segments(1) & "Cookieless2.aspx"
Response.Redirect(url)
End Sub
کد صفحات Cookieless1.aspx و Cookieless2.aspx در جداول زیر نشان داده شده است .
صفحه Cookieless1.aspx
<%@ Page Language="VB" Culture="fa-IR" UICulture="fa-IR" %>

 

<script runat="server">

 

Protected Sub cmdLink_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdLink.Click
Response.Redirect("Cookieless2.aspx")
End Sub
Protected Sub cmdLinkAbsolute_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim url As String = "http://" & Request.Url.Authority & Request.Url.Segments(0) &_
Request.Url.Segments(1) & "Cookieless2.aspx"
Response.Redirect(url)
End Sub

 

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Session("test") = "Test String"
End Sub
</script>

 

<html xmlns="http://www.w3.org/1999/xhtml" dir="rtl" >
<head id="Head1" runat="server">
<title>تست session </title>
</head>
<body style="font-family: Tahoma">
<form id="form1" runat="server">
<div>
<strong> تست session <br /> </strong>
<br />
<asp:HyperLink id="lnkRedirect" runat="server" Width="191px" Height="25px"
NavigateUrl="Cookieless2.aspx">لینک به همراه مسیر نسبی</asp:HyperLink><br />
<br />
<asp:Button id="cmdLinkAbsolute" runat="server" Width="183px"
Text="تغییر مسیر(مسیر مطلق)" Font-Names="Tahoma" Font-Size="Small" ></asp:Button><br /><br />
<asp:Button id="cmdLink" runat="server" Width="187px"
Text="تغییر مسیر ( مسیر نسبی ) " Font-Names="Tahoma" Font-Size="Small" ></asp:Button>
</div>
</form>
</body>
</html>

صفحه Cookieless2.aspx
<%@ Page Language="VB" Culture="fa-IR" UICulture="fa-IR" %>
<script runat="server">
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Session("test") Is Nothing Then
lblInfo.Text = "اطلاعات session موجود نمی باشد"
Else
lblInfo.Text = "اطلاعات session با موفقیت بازیابی گردید " & CType(Session("test"), String)
End If
End Sub

 

</script>
<html xmlns="http://www.w3.org/1999/xhtml" dir="rtl" >
<head id="Head1" runat="server">
<title>Untitled Page</title>
</head>
<body style="font-family: Tahoma">
<form id="form1" runat="server">
<div>
<asp:Label ID="lblInfo" runat="server" Font-Bold="True"
Font-Names="Tahoma" Font-Size="Small"
Height="52px" Style="z-index: 101; left: 488px; position: absolute; top: 25px"
Width="353px" ForeColor="#C04000"></asp:Label>
</div>
</form>
</body>
</html>
به صورت پیش فرض ، ASP. NET امکان استفاده مجدد از یک شناسه session را فراهم می نماید. مثلا" در صورتی که درخواستی ایجاد و query string شامل یک session باشد که مدت زمان اعتبار آن به پایان رسیده باشد ، ASP. NET یک session جدید را ایجاد و از شناسه session استفاده می نماید .
مشاهده ناخودآگاه یک شناسه session در یک مکان عمومی نظیر نتایج ارائه شده توسط یک موتور جستجو یکی از چالش های مهم روش فوق محسوب می گردد که ممکن است زمینه دستیابی چندین کاربر به سرویس دهنده با استفاده از شناسه session مشابه را فراهم نماید .
برای پیشگیری از این تهدید امنیتی ، می بایست از خصلت regenerateExpiredSessionId با مقدارtrue استفاده شود ( زمانی که از session با مد cookieless استفاده شده باشد ) . در چنین مواردی ، در صورتی که یک کاربر با یک شناسه session که تاریخ اعتبار آن به اتمام رسیده است به سرویس دهنده متصل شده باشد ، یک شناسه session جدید برای وی ایجاد خواهد شد . تنها نکته قابل تامل در این روش ، از دست دادن مقادیر موجود در view sate و داده موجود در فرم است ، چراکه ASP. NET برای حصول اطمینان از این موضوع که مرورگر دارای یک شناسه جدید session است ، عملیات redirect را انجام خواهد داد .
در بخش یازدهم به بررسی سایر خصلت های تاثیر گذار در پیکربندی session خواهیم پرداخت .

 

 

فرمت این مقاله به صورت Word و با قابلیت ویرایش میباشد

تعداد صفحات این مقاله   15 صفحه

پس از پرداخت ، میتوانید مقاله را به صورت انلاین دانلود کنید


دانلود با لینک مستقیم


دانلود مقاله Session State