سطح دسترسي[1]

آخرين مفهوم مهم در مورد اعلان متيغرها، سطح دسترسي آنها مي‌‌باشد. سطح دسترسي يك متغيرها تعيين مي كند كه آيا آن متغير مي تواند در خارج از ماژولي (يا برنامه كاربرديي) كه در آن اعلان شده است بكار رود يا خير. در زبان Visual Basic. NET ، براي تعيين سطح دسترسي متغيرها از كليد واژه‌‌هاي زير كه به جاي Dim   قرار مي گيرند استفاده مي شود:

Public: متغيرهايي كه با واژة Public اعلان شوند، از هر جايي در همان ماژول يا كلاسي كه در ان اعلان شده اند، فضاي نامي در بر گيرنده آن ماژول و هر برنامه كاربردي ديگري كه به آن برنامه كاربردي اشاره كند در دسترس مي باشند. آنها فقط در سطح آن ماژول يا كلاس قابل استفاده مي باشند.

Friend : متغيرهايي كه با واژه Friend اعلان شوند، از هر جايي در همان ماژول يا كلاسي كه در آن اعلان شده اند و همچنين در فضاي نامي در بر گيرنده آن ماژول در دسترس مي باشند.

Protected: متغيرهايي كه با واژه Protected اعلان شوند، فقط درون كلاس در بر گيرنده آنها و يا كلاس‌‌هاي مشتق شده از آن در دسترس مي باشند. واژه Protected فقز براي اعضاي كلاس‌‌ها قابل استفاده مي باشد. همچنين مي توان آن را همراه با واژه Friend بكار برد.

Private: متغيرهايي كه با واژة Private اعلان شوند، فقط درون ماژول، كلاس يا ساختمان در بر گيرنده آنها در دسترس مي باشند. در كلاس ها يا ماژول‌‌ها، اعلان يك متغير با واژه Dim يا Private اثر يكسان دارد، ولي استفاده از Private براي متغيرهاي خصوصي، هدف استفاده از آنها را بهتر مشخص مي كند. در ضمن فراموش نكنيد كه واژه Private درون رويه‌‌ها قابل استفاده نيست.

 

ثابت‌‌ها

ثابت ها شبيه متغيرها هستند؛ ولي با يك تفاوت : هنگامي كه يك ثابت را اعلان ومقدار دهي اوليه نموديد ديگر نمي توانيد مقدار آن را تغيير دهيد .

به ويژه ميتوان ثابت ها رابه جاي مقادير حرفي به عنوان آرگومان هاي متدهاي يك مولفه بكار برد . به عنوان مثال، در ADýO كلاسيك، نوع داده پارامترهاي يك رويه ذخيره شده به صورت عددي است به خاطر داشتن تمام اين مقادير عددي كاري مشكل و در عين حال غير ممكن است بنابراين توسعه دهندگان ADO امكان استفاده از ثابت ها به جاري ارقام را فراهم كردند مثل (adInteger,adVarChar)

به عبارت ديگر ، ثابت ها به شما امكان ميد هند كه به جاي ارقام و مقادير حرفي ( كه به خاطر داشتن آنها مشكل است) از نام هايي استفاده كنيد كه به خاطر سپردن آنها كار راحت تر و منطقي تري است.

 

رويه ها

رويه ها يكي از ابزارهاي مهم در برنامه نويسي ASP.NET ميباشند چون به شما اجاره مي‌‌دهند كه هنگام نوشتن كد، ترتيب اجراي قسمت‌‌هاي مختلف در زمان اجرا را مشخص كنيد. همچنين به شما امكان مي‌‌دهند كه با تقسيم كردن كد به قسمت‌‌هاي مختلفي كه هر يك عمليات خاصي را بر عهده دارند، برنامه خود را بهتر سازماندهي كنيد. به عنوان مثال، اگر كدي مي نويسيد كه دو عدد را گرفته و در هم ضرب مي‌‌كند و سپس نتيجه را بر مي‌‌گرداند، بهتر است كل آن را به صورت يك رويه در نظر بگيريد. استفاده از يك رويه به شما اجازه مي‌‌دهد كه كد درون آن را از قسمت‌‌ها يمختلف برنامه فراخواني كنيد. به اين ترتيب مي‌‌توانيد اين كد را در جاهاي ديگر نيز بكار ببريد و ديگر مجبور نيستيد هر بار آن را بازنويسي كنيد.

در Visual Basic .NET ، دو نوع رويه وجود دارد: رويه‌‌هاي Sub و رويه‌‌هاي Function.

 

رويه‌‌هاي Sub

يك رويه sub كد درون خود را اجرا مي‌‌كند ولي مقداري بر نمي‌‌گرداند. كد درون يك رويه Sub، ميان گزاره‌‌هاي Sub و End Sub : نوشته مي‌‌شود؛ به صورت زير:

Sub Procedures that writes output to the browser

Sub WriteHello()

               Response. Write (“Hello World! )

End Sub

 

رويه‌‌هاي Function

رويه‌‌هاي Function در زبان Visual Basic .NET درست مانند رويه‌‌هاي Sub مي‌‌باشند؛ ولي با يك تفاوت مهم: آنها مي توانند مقدار برگردانند. اين ويژگي به روية شما امكان مي‌‌دهد كه:

با برگرداندن يك مقدار عددي، نتيجه عمليات انجام شده را (كه ممكن است مطلوب يا نامطلوب باشد) گزارش دهد.

داده‌‌عا را به صورت يك ارايه يا يك شئ DataSet (كه از اشياء ADO. NET مي‌‌باشد) برگرداند.

نتيجه انجام يك دستور شرطي را به صورت True يا Flase برگرداند.

رويه‌‌اي كه در مثال زير مشاهده مي‌‌كنيد، دو پارامتر رشته‌‌اي دريافت مي‌‌كند، يكي از آنها را به انتهاي ديگري مي‌‌چسباند و سپس نتيجه را به صورت يك رشته بر مي‌‌گرداند:

Functin Concatstring (ByVal Stringl As String _

  ByVal String2 As Storing)As String

  ConcatStrings = Stringl & String2

End Function

توجه كنيد كه چون خود اين رويه Function از نوع String تعريف شده است، نيازي نيست براي نگهداري نتيجه مجموع دو رشته ورودي يك متغير محلي تعريف كنيم در عوض، فقط نتيجه كار را به نام تابع نسبت مي‌‌دهيم تا آن را به رويه فراخوان باز گرداند.

 

كنترل جريان برنامه

يكي ديگر از مباحث مهمي كه در برنامه نويسي مطرح مي شود، مسئله كنترل جريان برنامه است شما با كنترل كردن جريان برنامه مي توانيد مشخص كنيد كه در زمان اجرا كدام قسمت از برنامه و به چه ترتيبي به اجرا در آيد. گزاره‌‌هايي كه براي كنترل جريان برنامه بكار مي‌‌روند. عبارتند از: گزاره‌‌هيا شرطي (شامل If  و Case)، حلقه‌‌ها (شامل For … و Do …Loop) و گزاره‌‌هايي كه براي مهار كردن خطاها استفاده مي‌‌شوند.

 

گزاره If

گزاره If براي پياده سازي دستورات شرطي منطقي بكار مي‌‌روند و گاهي آن را ساختار تصميم گيرنده نيز مي‌‌نامند. If يكي از گزاره‌‌هايي است كه در برنامه نويسي زياد مورد استفاده قرار مي‌‌گيرد. اين گزاره به شما امكان مي‌‌دهد كه يك شرط مشخص را بررسي نموده و در صورت صحت نتيجه. يك بلوك از كد را به اجرا در آوريد. كد زير، يكي از متغيرهاي موجود در Session به نام LoggedInUserName را بررسي مي‌‌كند. مقدار اين متغير رد صفحه Login يك برنامه كاربردي ASP.NET تعيين مي‌‌شود. در صورتي كه مقدار اين متغير خالي باشد، به اين مفهوم است كه كاربر نام خود را وارد نكرده است. در اين حالت متد Redirect كاربر را دوباره به صفحه Login.aspx هدايت مي‌‌كند.

If Session (“LoggedInUserName”)  “ “ Then

      Response. Redirect (“Login.aspx”)

End If

در زبان Visual Basic .NET، هر گزاره If بايد با يك گزارة End If همراه باشد تا انتهاي بلوك شرطي به طور كامل براي كامپايلر مشخص شود. در حالتي كه شرط مورد نظر بر قرار نباشد نيز مي توانيد كدي را براي اجرا تعيين كنيد. به اين منظور بايد گزارة Else استفاده كنيد. براي بررسي بيش از يك شرط، مي‌‌توانيد از گزاره ElseIf نيز كمك بگيريد. اين تكنيك‌‌ها در مثال زير بكار برده شده‌‌اند:

If Session (“Logged InUserName”) = “ “ Then

      Response. Redirect (“Login. aspx”)

ElseIf Session (“LoggedInUser Name”) = “SuperUser” Then

      Response. Write (“You are a superuser!”)

Else

      Response. Write (“Hello, “ & Session (“LoggedInUserName”) & “ ! “ )

End If

 

گزاره Select Case

يكي ديگر از گزاره‌‌هاي شرطي كه به طور مكرر استفاده مي شود، گزاره Select Case مي باشد. اين گزاره در شرايطي مفيد است كه شما بتوانيد نتيجه شرط مورد بررسي را به چند مقدار مشخص محدود كنيد. به عنوان مثال، كدي كه در زير نوشته شده است، آيتمي را كه كاربر از يك كنترل LisBox انتخاب كرده است بررسي مي كند و در هر حالت عمليات مناسب را انجام مي دهد.

Dim ColorString As String

colorstring = Request . Form (“Colorse”)

select case colorString

      case “Red”

               Response . Write (“<font color = ‘ “ & colorstring & “ ‘ > “ )

               Response . Write (“You chose Red”)

               Response. Write (“ < / font > “)

      case “Green”

               Response. Write (“ < font color = ‘ “ & colorString & “ ‘ > “)

               Response. Write ( “ You chose green”)

               Response. Write (“ < / font > “)

      case “Blue”

               Response. Write (“ < font color = ‘ “ & colorString & “ ‘ > “)

               Response. Write (“ You chose Blue”)

               Response. write (“ < font > “)

End Select

 

حلقه‌‌هاي تكرار

حلقه‌‌هاي تكرار يكي از ويژگي‌‌هاي مفيدي هستند كه براي اجراري مكرر يك كد بكار مي‌‌روند. شما مي‌‌توانيد تعداد دفعات تكرار را به طور صريح و در زمان نوشتن كد مشخص كنيد، و يا تعيين آن را به زمان اجراي برنامه موكول كنيد. همچنين مي‌‌توانيد اشياء موجود در يك كلكسيون را گرفته و روي تك تك انها عملييات مورد نظر خود را انجام دهيد. گزاره‌‌هاي متعددي براي ساختن حلقه‌‌ها وجود دارد كه طرز نوشتن آنها با يكديگر متفاوت بوده و هر يك از آنها در شرايط بخصوصي مفيد مي‌‌باشند. اين گزاره‌‌ها عبارتند از:

حلقه‌‌هاي For …

حلقه‌‌هاي For Each … ، كه نوع خاصي از حلقه‌‌هاي For … هستند

حلقه‌‌هاي Do… ، كه شامل Do While … و Do Until … مي باشند

حلقه‌‌هاي While … End While

استفاده از حلقه‌‌هاي For …

حلقه‌‌هاي For … براي اجراي مجموعه‌‌اي از گزاره‌‌ها به تعداد دفعات مشخص بكار مي‌‌رود. تعداد دفعات اجراي اين گزاره‌‌ها را يم‌‌توان به طور صريح مشخص كرده و يا از يك عبارت محاسباتي كه يك مقدار عددي بر مي‌‌گرداند استفاده نمود. مثال زير (كه از آموزش فشرده ASP.NET گرفته شده است)، از يك حلقه For … كه 7 بار تكرار مي‌‌شود استفاده مي‌‌كند. اين كد در هر بار، پيغامي را نشان مي‌‌دهد كه اندازه فونت آن معادل مقدار شمارنده حلقه مي‌‌باشد:

< % For I = 0 To 7 % >

  < font size = “% I %> “> Welcome to ASP.NET < /font ><br>

< % Next % >

استفاده از حلقه‌‌هاي For Each

حلقه‌‌هاي For Each نوع خاصي از حلقه‌‌هاي For … هستند كه امكان گردش در ميان كلكسيون يا گروهي از المان‌‌ها را براي شما فراهم مي‌‌كنند. مثال زير، گردش در ميان آيتم‌‌هاي يك آرايه را نشان مي‌‌دهد:

Dim Dates (2) As Date

Dim DateItem As Data

Dates (0) = Now. Data

Dates (1) = Now. AddDays (7). Date

Dates (2) . Now. AddYears (1). Date

For Each DateItem In Dates

            Response. Write (“Date is : “ & DateItem. ToString & “ . <br /> “)

Next

استفاده از حلقه‌‌هاي Do…

حلقه‌‌هاي Do … به شما امكان مي‌‌دهند كه اجراي مجموعه‌‌اي از گزاره‌‌ها را تا زماني كه شرط مورد نظر بر قرار باشد تكرار كنيد. حلقه‌‌هاي Do… (كه به حلقه‌‌هاي Do …While ني زمعروف مي‌‌باشند) به شكلفهاي مختلفي مورد استفاده قرار مي‌‌گيرند. مثال زير، ساده‌‌ترين حالت استفاده از اين نوع حلقه را نشان مي‌‌دهد:

< %

‘Do While …Lop syntax:

Dim I as Integer = 1

Do While I < = 5

% >

            <font size = “ <% = I % > “Welcome to ASP.NET</ font>< br>

<%

            i = i + 1

Loop

% >

استفاده از حلقه‌‌هاي While … End While  

حلقه‌‌هاي While … End While درست مانند حلقه‌‌هاي Do While عمل مي‌‌كنند و به شما اجازه مي‌‌دهند كه اجراي مجموعه‌‌اي از دستورات را تا هنگامي كه شرط مورد نظر بر قرار باشد تكرار كنيد. حلقه‌‌هاي While … به اندازه حلقه‌‌هاي Do … انعطاف پذير نيستند، چون امكان استفاده از Until را فراهم نمي‌‌كنند همچنين به شما اجازه نمي‌‌دهند كه شرط را به انتهاي حلقه منتقل كنيد يكي از مزاي حلقه‌‌هاي While … End While سادگي طرز نوشتن آنها است كه براي برنامه نويسان مبتدي بسيار مناسب مي‌‌باشد. اگر بخواهيم حلقه مثال قبل را با استفاده از While …. بنويسيم به شكل زير خواهد شد:

< %

‘While …End While syntax :

Dim I as Integer = 1

While I < = 5

%>

<font size = “<% = I % > “Walcome to ASP.NET < / fot >< to >

< %

i = i + 1

End While

% >

مهار كردن خطاها

يكي از مسائلي كه تمام برنامه نويسان هنگام توسعه برنامه‌‌هاي كاربردي خود با آن مواجه مي‌‌شوند، سروكار داشتن با خطاهاي اجتناب ناپذيري است كه به هر حال رخ مي‌‌دهند. خطاهاي موجود در برنامه‌‌ها به يكي از سه گروه زير تعلق دارند:

خطاهاي نحوي: اين نوع خطاها ناشي از نوشتن نادرست دستورات و يا حذف يك كليد واژة مهم (مثل ننوشتن End If در انتهاب بلوك شرطي)، و يا اشتباهات نوشتاري ديگري كه به زبان برنامه نويسي مورد استفاده مربوط مي‌‌شوند مي‌‌باشند. خطاهاي نحوي معمولاً توسط IDE شناسايي شده و در هنگام طراحي برنامه به سادگي قابل رفع مي‌‌باشند.

خطاهاي زمان اجرا: اين نوع خطاها، خطاهايي هستند كه پس از كامپايل شدن كد و در زمان اجراي برنامه رخ مي‌‌دهند. خطاهاي زمان اجراي ناشي از كدهايي هستند كه از نظر كامپايلر صحيح مي‌‌باشند ولي توانايي اجرا با مقادير فعلي را ندارند. به عنوان مثال، كدي كه يك متغير Integer را بر يك متغير Integer ديگر تقسيم مي‌‌كند از نظر كامپايلر اشكالي

ندارد و صحيح است، ولي اگر در زمان اجرا مقدار متغير دوم صفر شود، يك خطا رخ مي‌‌دهد كه آن را خطاي زمان اجرا مي‌‌گوييم.

خطاهاي منطقي: گاهي اوقات يك برنامه هيچ نوع خطاي نحوي و يا خطاي زمان اجرا ندارد و در بيشتر مواقع درست عمل مي‌‌كند. ولي در يك حالت استثنايي و بر اساس مقادير ورودي، نتايج نادرست و نامطلوب توليد مي‌‌كند. شناسايي و رفع اين نوع خطاها ممكن است بينهايت مشلك و طاقت‌‌فرسا باشد؛ چون اجراي برنامه را متوقف نمي سازند.

آنجه كه در مورد هر سه نوع خطا اهميت دارد، مهار كردن آنها است تا مبادا موجب نارضايتي كاربران برنامه شوند. گام اول در اين راه، پيشگيري است. دو روش جلوگيري از ايجاد هطا در برنامه‌‌هاي Visual Basic .NET، استفاده از گزاره‌‌هاي Option Exlicit و Option Strict مي‌‌باشد. (اين دو گزاره به طور پيش فرض در محيط Visual Strudio .NET فعال مي باشند). اگر قبل از اعلان يك متغير سعي در استفاده از آن داشته باشيد، فعال بودن گزارة Option Explicit سبب بروز خطا از سوي كامپايلر خواهد شد. اين ويژگي در شرايطي كه در تايپ كردن نام متغيرها دچار مشكل شويد بسيار به شما كمك مي‌‌كند. فعال بودن Option Strict نيز از تبديل انواع داده به يكديگر كه سبب از دست رفتن اطلاعات شود جلوگيري مي‌‌كند. توجه داشته باشيد كه گزاره Option Strict به طور ضمني گزاره Option Explicit را شامل مي‌‌شود؛ بنابراين Option Strict نيز در هنگام استفاده از يك متغير اعلان نشده سبب بروز خطا مي‌‌شود.

ندارد و صحيح است، ولي اگر در زمان اجرا مقدار متغير دوم صفر شود، يك خطا رخ مي‌‌دهد كه آن را خطاي زمان اجرا مي‌‌گوييم.

خطاهاي منطقي: گاهي اوقات يك برنامه هيچ نوع خطاي نحوي و يا خطاي زمان اجرا ندارد و در بيشتر مواقع درست عمل مي‌‌كند. ولي در يك حالت استثنايي و بر اساس مقادير ورودي، نتايج نادرست و نامطلوب توليد مي‌‌كند. شناسايي و رفع اين نوع خطاها ممكن است بينهايت مشلك و طاقت‌‌فرسا باشد؛ چون اجراي برنامه را متوقف نمي سازند.

آنجه كه در مورد هر سه نوع خطا اهميت دارد، مهار كردن آنها است تا مبادا موجب نارضايتي كاربران برنامه شوند. گام اول در اين راه، پيشگيري است. دو روش جلوگيري از ايجاد هطا در برنامه‌‌هاي Visual Basic .NET، استفاده از گزاره‌‌هاي Option Exlicit و Option Strict مي‌‌باشد. (اين دو گزاره به طور پيش فرض در محيط Visual Strudio .NET فعال مي باشند). اگر قبل از اعلان يك متغير سعي در استفاده از آن داشته باشيد، فعال بودن گزارة Option Explicit سبب بروز خطا از سوي كامپايلر خواهد شد. اين ويژگي در شرايطي كه در تايپ كردن نام متغيرها دچار مشكل شويد بسيار به شما كمك مي‌‌كند. فعال بودن Option Strict نيز از تبديل انواع داده به يكديگر كه سبب از دست رفتن اطلاعات شود جلوگيري مي‌‌كند. توجه داشته باشيد كه گزاره Option Strict به طور ضمني گزاره Option Explicit را شامل مي‌‌شود؛ بنابراين Option Strict نيز در هنگام استفاده از يك متغير اعلان نشده سبب بروز خطا مي‌‌شود.

مثال زير، استفاده از Option Strict را نشان مي‌‌دهد:

Option Strict On

Dim MyInt As Integer

Dim MyDouble As Double

MyDouble = 3.14159

MyInt = MyDouble ‘This line will cause an error at compile time

هر دو گزاره Option Explicit و Option Strict بايد در بالاي ماژولي كه در آن مورد استفاده قرار مي‌‌گيرند و قبل از هر دستور ديگري نوشته شوند.

 

آشنايي با مباني برنامه‌‌نويسي شئ ـ گرا

يكي از مباحثي كه ممكن است براي برنامه نويسان Visual Basic و به طور كلي كساني كه به تازگي پا در عرصه برنامه نويسي گذاشته اند جديد باشد، برنامه نويسي شئ ـ گرا است. در اين قسمت مروري بر برنامه نويسي شئ ـ گرا، و به خصوص آن گونه كه به زير ساخت NET. مربوط مي‌‌شود خواهيم داشت. برنامه نويسي شئ ـ گرا يكي از مباحث مهم و ضروري است؛ بنابراين به شدت توصيه مي‌‌شود كه در اين زمينه بيشتر مطالعه نماييد و سعي در يافتن مطالب پيشرفته‌‌تر داشته باشيد. راهنمايي كه براي برنامه نويسان Visual Basic .NET به همراه Visual Studio .NET ارائه شده است شامل يك بخش كامل در مورد برنامه‌‌نويسي . شئ ـ گرا است.

استفاده از كلاس‌‌ها به عنوان محفظه‌‌هاي كد

كلاس‌‌ها واحد اصلي يك برنامه كاربردي شئ ـ گرا هستند. در Visual Basic .NET يا C# ، يك كلاس معمولاً در بر گيرنده تعاريف ويژگي‌‌ها، متدها و توابع پاسخ دهنده رويدادها (كه نوع خاصي از متدها هستند) مي باشد. اغلب با استفاده از فضاهاي نامي، كلاس ها را به گروه هاي جداگانه تقسيم مي كنند. يك فضاي نامي مي تواند شامل كلاس ها و فضاهاي نامي دير باشد. به عنوان مثال، فضاي نامي System.Web كه توسط .NET Framework SDK تعريف شده است، نه تنها شامل كلاس‌‌هايي از قبيل HttpRequest ، HttpResponse و HttpServerUtility (كه معادل Request ، Response و Server در ASP كلاسيك هستند) مي‌‌باشد، بلكه چند فضاي نامي ديگر از جمله System. Web. UI ، System.Web.Caching و System.Web.SessionState را نيز در بر مي‌‌گيرد كه هر يك از آنها نيز شامل كلاس‌‌خا و فضاهاي نامي ديگر مي‌‌باشند.

معماري .NET با استفاده از كلاس‌‌ها و فضاهاي نامي، يك ساختار شئ ـ گرا براي توسعه برنامه‌‌هاي      كاربردي قدرتمند فراهم آورده است كه اشكال زادايي و نگهداري آنها نيز بسيار آسان‌‌تر مي‌‌باشد.

مرجع سريع فصل 4

براي

اين كار انجام دهيد

مثال

اعلان يك متغير در

از كليد واژة Dim به

Dim MyInt As Interger

Visual Basic.NET

همراه نوع دادة موردنظر

خود ا ستفاده كنيد.

اعلان يك متغير در #C

پس از نوشتن نوع دادة موردنظر، نام متغير را قيد نماييد.

int MyTnt

تعيين سطح دسترسي به يك متغير يا يك رويه در

#C

يكي از كليد واژه‌‌هاي

Public، private،

protected،internal

را بكار ببريد.

public void myproc ( )

{

}

مهار كردن خطاها به روش ساختار يافته در

 NET.Visual Basic

يك                 بلوك

Try…Catch…Finally

بسازيد.

مهار كردن خطاها به

روش ساختار يافته در

#C

يك                 بلوك

Try…Catch…Finally

بسازيد.

مهار كردن خطاها به

روش ساختار يافته در

#C

يك                 بلوك

Try…Catch…Finally

بسازيد.

مشتق كردن يك كلاس از

يك كلاس پايه در

Visual Basic.NET

از كليد واژة Inherits

استفاده كنيد.

class Dog

         Inherits Animal

End Class

مرجع سريع فصل 4

براي

اين كار را انجام دهيد

مثال

مشتق كردن يك كلاس از يك كلاس پايه در #C

نام كلاس پايه را پس از

يك علامت: به دنبال نام

كلاس جديد تايپ كنيد.

class Dog : Animal

{

}

ClsQuestion

 قبل از آنكه اين كلاس توضيح دهيم بهتر است نگاهي به جدول Questions داشته باشيم.

 intAnswerNo

StrD

Strc

StrB

StrA

Strauestion

IngQvestion

همانطور كه مي‌‌بينيم اين جدول شامل شماره سوال، شرح سوال، گزينه‌‌هاي A و B و C و D و جواب درست مي‌‌باشد.

حال مي پردازيم به ClsQuestion:

اين كلاس شامل متغيرها:

– LngQuestionNo شماره سوال

– str Question شرح سوال

A  – Str A

B    -Str B

C     -StrC

D    – StrD

– intcurrect  جواب درستي كه كاربر داده است.

– intFault     جواب اشتباهي كه كاربر داده است.

intforbear     كاربر از دادن جواب صرف نظر نموده است.

– int Answer   گزينه صحيح

كه تمامي آنها به شكل priuate تعريف شده‌‌اند و مي توان هم به آنها مقدار داد و هم مقدار خواند.

ـ توجه: در كلاس  Attachment ؛ * ، ** ، *** را توضيح داديم كه از مفهوم آنها در اين كلاس هم استفاده شده است.

1 ـ Function  save to DB ()

*** : sp كه در اينجا فراخواني مي شود. SpInsertIntblQuection است كه هدف از اين Sp پر كردن رسته سوال و گزينه‌‌هايش، همچنين جواب صحيح با مقادير كه به آن مي دهيم مي باشد.

بطور كلي هدف ما از اين Function اين است كه بتوانيم سوالاتي را اضافه كنيم را همراه با گزينه‌‌ها و جواب درست به DB اضافه و ذخيره نمائيم.

 

Function UpdateDB :

*** : در اينجا spupdate tblQuestion فراخواني مي شود. بدين شكل كه وقتي شماره يك سوال را انتخاب كنيم بتوانيم آنرا ويرايش كنيم و فيلدهاي آن را با مقادير جديد پر كنيم.

***

مقادير جديد را در رشته‌‌هاي مربوط به آن مي گذاريم؛ اين تابع پس از اجرا شدن مقداري بر ايمان بر نمي گرداند.

Delete From DB () :

*** : SpdeletFromtbl Qvestion فراخواني مي شود كه در اينجا يك شكاره سوال را گرفته و مشخصات آنرا بطور كل حذف مي كند.

هدف از اين Function هم اين است كه استاد بتواند در صورت نياز اقدام به حذف سئوال طرح شده مورد نظرش نمايد.

clsQuestion list

شكل كلي اين كلاس شبيه كلاس قبلي است در اينجا يك قيف خصوصي (-arllist) از نوع ارايه (trraylist () ) تعريف مي كنيم در اين كلاس فقط تابع Fill FromDB تعريف شده كه پس از بر قراري ارتباط بوسيله Scon و فراخواني Sp مربطه (SpselectFrom tblQvstion) سپس متغير dr را از نوع Sql Data Reader تعريف مي كنيم.

Scmd . ExecteReader مي كنيم (يعني به وسيله متغير Scmd آنرا اجرا مي كنيم و نتيجه را بر مي گردانيم) حاصل را در dr مي گذاريم

حال بوسيله يك حلقه while از dr مي خوانيم و تمامي مقادير (سوال، گزينه‌‌ها، جواب درستي و جواب غلط و سوالي كه صرفنظر شده و همچنين گزينه صحيح) را داخل متغير Qustion مي گذاريم. (متغير را از نوع كلاس Qvstion تعريف نموديم) و تمامي فيلدهاي خوانده شده را به – arllist اضافه مي كنيم تا زمانيكه مقداري در dr نباشد.

 

جريان داده‌‌هاي ASP.NET

شما مي‌‌توانيد به دو روش، امنيت را در برنامه‌‌هاي كاربردي ASP.NET اجرا كنيد. اولين روش به مجوزهاي امنيتي ويندوز و IIS بستگي دارد. از آن جا كه IIS يكبار اعتبار كاربر را تشخيص داده است و نشانه‌‌اي به منظور استفاده و برنامه كاربردي منتقل شده است، اين نوع امنيت را تقليد (impersonation) مي‌‌نامند. به دليل اين كه شما براي پردازش صلاحيت امنيت،به محيط ويندوز وابسته هستيد، استفاده از سيستم پرونده NTFS براي تنظيم مجوزها در منابع شما، مهم مي‌‌باشد.

براي اين روش، توالي رخدادهاي زير روي مي‌‌دهد:

كاربر براي دستيابي به صفحه‌‌اي در خادم وب تلاش مي‌‌كند.

2- IIS، با استفاده از دستيابي ناشناس تشخيص اعتبار مجتمع، تلخيص يا اوليه ويندوز، اعتبار مشتري را تشخيص مي‌‌دهد.

3- اگر مشتري دقيقاً اعتبار را تشخيص دهد، IIs درخواست منبع آغازي را به برنامه كاربردي ASP.NET( به شكل يك نشانه) منتقل مي‌‌كند.

4- برنامه كاربدري ASP.NET، با استفاده از نشانه‌‌اي كه براي آن ارسال شده است، از مشتري تقليد نموده و از مجوزهاي NTFS كه به منابع سرور (خادم) براي پذيرش دستيابي نسبت داده مي‌‌شوند، استفاده مي‌‌كند.

5- اگر دستيابي از طريق مجوزهاي NTFS پذيرفته مي‌‌شود، برنامه كاربردي ASP.NET منبع درخواستي را از طريق IIS به كاربر باز مي‌‌گرداند.

دومين روش ادارة درخواست‌‌هاي امنيت،تشخيص اعتبار ASP.NET ناميده مي‌‌شود و به امنيت از پيش تعيين شدة ASP.NET بستگي دارد. در اين نوع امنيت، يك برنامه كاربردي از يك cookie (كلوچه) كه توسط ASP.NET ايجاد شده است و معمولاً نام كاربر و اطلاعات كلمه عبور را ذخيره مي‌‌نمايد استفاده مي‌‌كند. سپس برنامه كاربردي ASP.NET، اين اطلاعات را دريافت نموده و صحت آنهارا تعيين مي‌‌كند. براي اين كه نوع تشخيص اعتبار به خوبي عمل كند، دستيابي ناشناس موجود در جعبه IIS را فعال مي‌‌نماييد. به جز اين مورد، IIS سعي خواهد كرد تا اعتبار كاربر را از طريق روش‌‌هاي خاص خود (قبل ازارسال مجدد درخواست به برنامه كاربردي ASP.NET شما) تشخيص دهد.

براي تشخيص اعتبار ASP.NET، به درخواست‌‌هاي منبع خام، مجموعه رخدادهاي زير را مورد بررسي قرار مي‌‌دهند:

1- كاربر سعي دارد تا به صفحه‌‌اي در خادم وب دسترسي پيدا كند.

2- IIS اين درخواست را دريافت نموده و اعتبار آن را تشخيص مي‌‌دهد يا اگر دستيابي ناشناس فعال باشد، درخواست مورد نظر را به برنامه كاربردي ASP.NET ارسال مي‌‌نمايد.

3- ارگ authenication (كلوچه تشخيص اعتبار) رايانه مشتري وجود داشته باشد، اطلاعات موجود در cookie با اطلاعات تركيب‌‌بندي امنيت (كه با برنام كاربردي ASP.NET ذخيره شده است)، مقايسه مي‌‌شود. چنانچه اعتبار صلاحيت تشخيص داده شود، درخواست مزبور پردازش مي‌‌گردد و ASP.NET، صفحه را به كاربر ارسال مي‌‌كند.

اگر authentication در دستگاه مشتري وجود نداشته باشد، كاربر مجدداً به صفحه برقراري ارتباط هدايت مي‌‌شود كه توسط تنظيمات تركيب‌‌بندي برنامه كاربردي ASP.NET تعريف شده است. حال،كاربر بايد نام كاربر و كلمه عبور خود را وارد نموده و آنها را براي تشخيص اعتبار ارائه دهد.

4- سپس برنامه كاربردي ASP.NET،اعتبار كاربر را مي‌‌سنجد معمولاً اين امر از طريق عمل اعتبار سنجي كاربر انجام مي‌‌شود و security cookie (كلوچه امنيت) را به رايانه كاربر مي‌‌فرستد. اگر اعتبار سنجي كاربر رد شود، پيام عدم دستيابي در صفحه نمايش ظاهر مي‌‌گردد.

5- چنانچه اعتبار كاربر از طريق برنامه كاربردي ASP.NET تشخيص داده شود، پردازش به مرحله سوم باز مي‌‌گردد تا مشاهده كنيد كه آيا دستيابي به منبع درخواستي يا صفحه مجاز است يا خير. اگر جواب منفي باشد، يك پيام عدم امكان دستيابي در پرده نمايش ظاهر مي‌‌شود.

معماري امنيت ASP.NET

معماري امنيت ASP.NET، دو نوع مي‌‌باشد. اولين مؤلفه، مجتمع سازي آن با IIS است. مؤلفه دوم در فهرست ريشه برنامه كاربردي ASP.NET،در پرونده‌‌اي به نام web.config قرار دارد. اين پرونده، تنظيمات تركيب‌‌بندي مختلفي را ذخيره مي‌‌كند كه شامل تنظيمات امنيت براي برنامه كاربردي شما مي‌‌باشد.

 

امنيت IIS و ويندوز

اولين مرحلة ايمن سازي در برنامه كاربردي، با سرور (خادم) وبي كه ميزبان سايت (محله) شما مي‌‌باشد، آغاز مي‌‌گردد. در اكثر موارد، خادم وب مزبور Internel Information Server 5.0 (خادم اطلاعاتي اينترنت) مي‌‌باشد كه به طور خودكار توسط خادم ويندوز 2000 نصب مي‌‌شود و مي‌‌تواند به طور دستي به ويندوز 2000 اضافه گردد. IIS، روش‌‌هاي مختلفي براي ايمن سازي سايت وب شما ارائه مي‌‌دهد. اين گزينه‌‌ها در پايان زبانه Directory Security پنجرة Prorerties مربوط به سايت شما قرار مي‌‌گيرند. براي دستيابي به زبانه Directory Security، دستورالعمل‌‌هاي زيررا انجام دهيد:

1- فرمان Start®Programs®Administrative  Tools را اجرا كنيد. سپس،گزينة Internet Services Manger را انتخاب نماييد.

2- هنگامي كه پيشانة IIS ظاهر مي‌‌شود، علامت بعلاوه را در سمت چپ رايانه بسط دهيد. روي گزينه Default Web Site كليك راست نموده و گزينة properties را انتخاب كنيد.

در نهايت در پنجرة Default Web Site Properties، روي زبانه Directory Security كليك نماييد.

 

محدوديت‌‌هاي نام حوزه و نشاني IP

در IIS، مي‌‌توانيد دستيابي نام‌‌هاي حوزه و نشاني‌‌هاي IP خاص مربوط به سايت خود را پذيرفته يا رد كنيد.

طبق پيش فرض، IIS دستيابي به تمام نشاني‌‌هاي IP و نام‌‌هاي حوزه (كه سايت شما را مشاهده مي‌‌نمايند) را مي‌‌پذيرد مگر اين كه يك نشاني IP يا نام حوزه خاص كه مي‌‌خواهيد اجرا شود را مشخص كنيد. همچنين، مي‌‌توانيد براي عدم دستيابي به تمام نشاني‌‌هاي IP و نام‌‌هاي حوزه (به غير از آنهايي كه مشخص كرده‌‌ايد)، IIS را تنظيم نماييد. اين روش محدوديت بيشتري دارد و تنها اگر اطلاعاتي در سايت خود داريد كه بايد براي تعداد كمي از كاربران قابل دسترسي باشد، توصيه مي‌‌شود.

 

تشخيص اعتبار ويندوز از طريق IIS

يك سازوكار امنيت ديگري كه در IIS تعبيه شده است، قابليت تشخيص اعتبار كاربران مي‌‌باشد.

1- اولين سطح، دستيابي ناشناس anonymous access مي‌‌باشد. اگر جعبه محاوره‌‌اي Anonymous Access فعال شود، اعتبار تمام كاربران براي محله‌‌اي كه از احساب از پيش تعيين شده ويندوز، يعني IUSR_computername استفاده مي‌‌كنند، تشخيص داده مي‌‌شود ( در حالي كه computername، نام سرور وب شما است)، يك ويژگي عالي IIS،توانايي آن در ايجاد يك كلمه عبور منحصر به فرد براي اين حساب مي‌‌باشد و اين بدان معناست كه كاربران با امتيازات اداره خام (server administration)، نيازي به ايجاد يك كلمه عبور مناسب براي حساب كاربر اينترنت شما ندارند يا با تغييرات لازم كلمه عبور در شبكه‌‌هايي كه به خوبي از آنها نگهداري مي‌‌شود، كار مي‌‌كنند.

2- دومين سطح تشخيص اعتبار، basic (پايه) مي‌‌باشد. اين نوع تشخيص اعتبار، صلاحيت برقراري ارتباط را به شكل يك نام كاربر و كلمه عبور، به كاربر اعلان مي‌‌كند. اين روش خوبي براي ايمن سازي محتويات وبي سايت (محله) شما مي‌‌باشد: با اين وجود، اشكال اصلي چنين روشي اينست كه نام كاربر و كلمه عبور به عنوان متني خوانا (يعني بدون هيچ  رمز نويسي) براي تشخيص اعتبار به خادم وب، فرستاده مي‌‌شوند. اين بدان معناست كه هر فردي كه داراي يك بستك ياب، (نرم‌‌افزاري كه محتويات بستك‌‌هاي TCP/IP را كنترل نموده و آنها را آشكار مي‌‌كند) و توانايي خواندن بستك‌‌هاي باشد، مي‌‌تواند به سايت شما دسترسي پيدا كند.

براي غلبه براين مشكل، بايد با استفادهاز Secure Sockets Layer (درگاه 443)، كه به آن SSL هم مي‌‌گويند،  اتصالي ايمن با خادم وب خود ايجاد نماييد. هنگامي كه https:// را در ابتداي يك URL مي‌‌بينيد، پي مي‌‌بريد كه سايت وب در حال استفاده از SSL مي‌‌باشد. SSL، از يك سيستم كليد عمومي براي رمزنويس تمام داده‌‌هايي (كه بين خادم وب و رايانه كاربر منتقل مي‌‌شود) استفاده مي‌‌كند. همچنين، اعتبار رايانه كاربر را تشخيص مي‌‌دهد تا تضمين نمايد كه هيچ فرد ديگري موجوديت درون خطي او را ندزديده است. حال، نكته مهمي كه بايد به خاطر داشته باشيد اينست كه بهره‌‌برداري كامل از تشخيص اعتبار اصلي در سايت وب شما، بسيار اساسي است.

3- سومين سطح تشخيص اعتبار در digestauthentication,IIS 5.0 (تلخيص) مي‌‌باشد. اين روش شبيه به تشخيص اعتبار basic است (به جز كلمه عبور كه به عنوان متني خوانا به خادم وب فرستاده نشده است). درعوض، قبل از اين كه به خادم بازگردانده شود، به شكل يك مقدار درهم، رمز نويسي مي‌‌شود.

 

تشخيص اعتبار تلخيص، مراحل مختلفي دارد:

1- خادم (سرور) وب، اطلاعات معيني را براي مرورگر ارسال مي‌‌كند تا درفرآيند تشخيص اعتبار مورد استفاده قرار گيرد.

2-مرورگر وب، اين اطلاعات و ساير اطلاعاتي كه فراتر از قلمرو اين كتاب مي‌‌باشند را به كلمه عبور، نام كاربر و ساير اطلاعات اضافه نموده و يك درهم سازي در آنها اجرا مي‌‌كند.

3- درهم‌‌سازي حاصله به خادم وب باز گردانده مي‌‌شود.

4-خادم وب، اطلاعات ارسالي به مرورگر را به كپي متن خواناي كلمه عبوري مي‌‌افزايد كه در خادم وب ذخيره شده است و همان درهم را در آن اجرا مي‌‌كند.

5- خادم وب، مقدار درهم ساز كه توسط مرورگر به آن فرستاده شده است را با مقدار درهم ساز كه درخادم محاسبه كرده‌‌است. مقايسه مي‌‌كند.

-6اگر مقادير درهم ساز يكسان باشند، دستيابي پذيرفته مي‌‌شود. درغير اين صورت، خطايي به مرورگر بازگردانده مي‌‌شود و كاربر بايد مجدداً اعتبار را تشخيص دهد.

 

      پایان.


[1]  – Accessibility

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

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

نظر خود را بگذارید

-- بارگیری کد امنیتی --