سطح دسترسی[۱]

آخرین مفهوم مهم در مورد اعلان متیغرها، سطح دسترسی آنها می‌‌باشد. سطح دسترسی یک متغیرها تعیین می کند که آیا آن متغیر می تواند در خارج از ماژولی (یا برنامه کاربردیی) که در آن اعلان شده است بکار رود یا خیر. در زبان 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 … که ۷ بار تکرار می‌‌شود استفاده می‌‌کند. این کد در هر بار، پیغامی را نشان می‌‌دهد که اندازه فونت آن معادل مقدار شمارنده حلقه می‌‌باشد:

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

مرجع سریع فصل ۴

برای

این کار انجام دهید

مثال

اعلان یک متغیر در

از کلید واژه 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

مرجع سریع فصل ۴

برای

این کار را انجام دهید

مثال

مشتق کردن یک کلاس از یک کلاس پایه در #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 ؛ * ، ** ، *** را توضیح دادیم که از مفهوم آنها در این کلاس هم استفاده شده است.

۱ ـ 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 برای تنظیم مجوزها در منابع شما، مهم می‌‌باشد.

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

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

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

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

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

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

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

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

۱- کاربر سعی دارد تا به صفحه‌‌ای در خادم وب دسترسی پیدا کند.

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

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

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

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

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

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

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

 

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

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

۱- فرمان Start®Programs®Administrative  Tools را اجرا کنید. سپس،گزینه Internet Services Manger را انتخاب نمایید.

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

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

 

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

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

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

 

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

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

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

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

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

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

 

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

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

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

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

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

۵- خادم وب، مقدار درهم ساز که توسط مرورگر به آن فرستاده شده است را با مقدار درهم ساز که درخادم محاسبه کرده‌‌است. مقایسه می‌‌کند.

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

 

      پایان.


[۱]  – Accessibility

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

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