بررسی كنترل های Validation در ASP.NET New Page 1



ساير




 

 

 

SAKHA RAVESH CO.

 ا مروز

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

    5 4 3 2 1 

 عنوان

 نويسنده

  مشاهده

 تعداد آراء

 امتياز

 كنترل های Validation در ASP.NET ( بخش اول )

 مديريت وب

13902

28

4.2

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

 

كنترل های Validation در ASP.NET

كنترل های Validation در ASP.NET ( بخش اول )
بررسی و ارزيابی صحت اطلاعات ورودی توسط كاربران ، يكی از عمليات بسيار مهم در برنامه های كامپيوتری خصوصا" برنامه های وب با توجه به ماهيت معماری آنها می باشد . پياده كنندگان برنامه های وب می بايست پس از درج داده ورودی توسط كاربر و  قبل از ارسال آن به لايه های ديگر ، آنها را ارزيابی و صرفا" پس از تائيد ، پردازش های مورد نياز را بر روی آنها انجام دهند . اعتقاد عملی به سياست فوق باعث پيشگيری تعداد زيادی از حملات در برنامه های‌ وب می گردد . در صورت عدم رعايت موارد اشاره شده ، شرايط لازم به منظور سوء استفاده از پتانسيل فوق فراهم و مهاجمان می توانند با بهره برداری از نقاط ضعف موجود  ، حملات خود را برنامه ريزی نمايند .
در اين مقاله به بررسی امكانات ارائه شده در ASP.NET به منظور ارزيابی صحت داده ورودی خواهيم پرداخت . آشنائی و بكارگيری روش های مناسب به منظور بررسی صحت داده ورودی يكی از عمليات مهم در جهت ايمن سازی برنامه های وب نيز می باشد . پس با انگيزه و دقت مضاعف كار را دنبال می نمائيم .

ضرورت و ماهيت كنترل های Validation
زمانی كه از يك TextBox برای درج داده بر روی‌ يك فرم استفاده می گردد ،‌ همواره اين احتمال وجود خواهد داشت كه كاربران اطلاعات را متناسب با انتظار يك برنامه وارد نمايند . به عنوان مثال ،‌ فرض كنيد كه در يك فرم وب از دو TextBox برای درج داده عددی توسط كاربران استفاده شده است و  در ادامه  می بايست اطلاعات ورودی در اختيار يك روتين جهت انجام پردازش های مورد نياز ( به عنوان نمونه ، انجام عمليات محاسباتی بر روی داده های ورودی ) قرار داده شود . در صورتی كه كاربران داده را در محدوده مجاز وارد ننمايند و يا ورودی از نوع عددی نباشد ، روتين مورد نظر در انجام پردازش های خود با مشكل مواجه خواهد شد .  بنابراين ، می بايست  همواره قبل از اين كه داده ورودی در اختيار روتين های مورد نظر جهت انجام پردازش های مشخص شده قرار داده شود ،  آنها را بررسی و در صورت رعايت مجموعه سياست های تعريف شده ، امكان استفاده از آنها را برای اسكريپت ها فراهم نمود .
به منظور ارزيابی داده ورودی توسط كاربران با توجه به داده مورد نياز اسكريپت ها ،‌ از روش های متعددی می توان استفاده نمود .  متداولترين نياز ، وجود يك مقدار ورودی است . در چنين مواردی ، انتظار داريم قبل از اين كه يك اسكريپت بتواند پردازش های مورد نياز را بر روی داده ورودی انجام دهد، در TextBox مقداری درج شده باشد. ماهيت داده ورودی در اين مقطع مهم نمی باشد و مهم اين است كه داده ئی توسط كاربر در مكان مورد نظر وارد شده باشد . در برخی موارد لازم است كه داده ورودی از يك نوع خاص باشد ( به عنوان نمونه يك مقدار عددی ) تا بتوان آن را در اختيار روتين های مورد نظر به منظور انجام پردازش های محاسباتی قرار داد . در برخی موارد ديگر ، لازم است كه داده ورودی در يك محدوده خاص باشد و داده درج شده خارج از محدوده مورد نظر ، غيرمعتبر گردد .
برای بررسی و ارزيابی صحت داده در ASP.NET مجموعه ای از كنترل های validation ارائه شده است . از كنترل های فوق  می توان به منظور بررسی و تست عدم درج داده ، مقايسه داده ورودی با يك مقدار خاص  ، بررسی وجود مقادير در يك محدوده خاص و ساير فرم های داده استفاده نمود تا اين اطمينان ايجاد گردد كه داده مناسب و معتبر در اختيار اسكريپت ها و به منظور انجام پردازش ها قرار داده می شود .
كنترل های validation در ارتباط مستقيم با كنترل TextBox بوده و تست و ارزيابی خود را بطور اتوماتيك و پس از كليك بر روی كنترل هائی نظير Button  ، LinkButton  و ImageButton انجام خواهند داد . در صورتی كه ماحصل بررسی يك كنترل validation توام با موفقيت نباشد ، validator يك پيام خطاء را نمايش و به كاربران اعلام می نمايد كه داده ورودی فاقد شرايط لازم برای استفاده در برنامه می باشد .
در شكل زير كنترل های Validation ارائه شده در ASP.NET 2.0   ،‌ نشان داده شده است .
 

كنترل های Validation در ASP.NET
كنترل های Validation

در ادامه به بررسی كنترل های فوق خواهيم پرداخت .

كنترل <asp:RequiredFieldValidator>
متداولترين نوع ارزيابی داده ورودی ، بررسی آن به منظور اطمينان از درج داده توسط كاربر است . كنترل <asp:RequiredFieldValidator>  ، مسئوليت بررسی داده ورودی در يك Textbox را برعهده گرفته و در صورت عدم درج داده توسط كاربر ، يك پيام خطاء را نمايش خواهد داد . در چنين مواردی ، روتين هائی كه می بايست  پس از كليك بر روی دكمه موجود از داده درج شده در TextBox استفاده نمايند ، فرصت انجام چنين كاری را به دليل عدم درج داده توسط كاربر پيدا نخواهند كرد .

شكل عمومی
شكل عمومی كنترل فوق به صورت زير است :

<asp:RequiredFieldValidator id="id" Runat="Server"
   ControlToValidate="controlID"
   Display="Dynamic|None|Static"
   ErrorMessage="string"
   SetFocusOnError="False|True"
   ValidationGroup="name"
/>

توضيحات 

  • از يك id صرفا" زمانی استفاده می شود كه قرار است به كنترل از طريق اسكريپپ مراجعه گردد .

  • به خصلت  ControlToValidate ، مقدار id كنترل textBox كه مسئوليت بررسی آن به كنترل RequiredFieldValidator واگذار شده است ،‌نسبت داده می شود.

  • خصلت ErrorMessage ، پيام مورد نظر در صورت بروز خطاء را مشخص می نمايد .

  • خصلت SetFocusOnErrorMessage ، يك blinking cursor را در كنترل TextBox مربوطه به منظور تسهيل در امر درج داده جديد قرار می دهد .

  • خصلت ValidationGroup يك گروه از كنترل های TextBox را كه مجموعه ای از تست های بررسی روی آنها اعمال خواهد شد ، مشخص می نمايد (در مواردی كه دكمه های متفاوت می توانند باعث فعال شدن تست های مختلفی گردند ) .

  • خصلت Display : كنترل RequiredFieldValidator ، يك فضای افقی را متناسب با طول رشته مربوط به پيام خطاء اشغال خواهد كرد . در اغلب موارد ، پيام خطاء در كنار TextBox مربوطه نمايش داده می شود . مكان فوق بر روی صفحه همواره نشان داده خواهد شد ( ولو اين كه خطائی اتفاق نيافتد ) . در صورتی كه مقدار خصلت Display معادل Dynamic در نظر گرفته شود ، مكانی برای نمايش پيام خطاء رزو نخواهد شد و  بطور پويا و همزمان با بروز خطاء ايجاد می گردد . 

مثال
در اين مثال زمانی كه كاربر بر روی button كليك نمود ، كنترل RequiredFieldValidator  بطور اتوماتيك عمليات بررسی و ارزيابی داده ورودی در TextBox را آغاز می نمايد ( قبل از اين كه روتين Get_Data فراخوانده شود ) . در صورتی كه TextBox خالی باشد ،‌ يك پيام خطاء نمايش داده شده و cursor مجددا" در TextBox قرار خواهد گرفت . در صورتی كه در TextBox داده ئی توسط كاربر درج گردد ، تست ارزيابی با موفقيت انجام و روتين مربوط فراخوانده شده و مقدار ورودی را در خروجی نمايش خواهد داد . در اين مثال ، مقدار خصلت Display كنترل RequiredFieldValidator ،‌ معادل Dynamic در نظر گرفته شده است ، بنابراين در صورت عدم توليد يك پيام خطاء ، مكانی بر روی صفحه برای نمايش آن در نظر گرفته نخواهد شد . بدين ترتيب به كنترل label اجازه داده می شود كه در كنار TextBox نمايش داده شده و از فضای مشابه پيام خطاء استفاده نمايد ( استفاده مشترك از يك مكان بر روی فرم وب به منظور نمايش پيام خطاء و يا داده ورودی توسط كاربر ) .

<SCRIPT Runat="Server">

    Sub Get_Data (Src As Object, Args As EventArgs)
       Output.Text = "You entered '" & MyTextBox.Text & "'"
    End Sub

</SCRIPT>


<form Runat="Server">

<asp:TextBox id="MyTextBox" Runat="Server"/>
<asp:Button Text="Submit" OnClick="Get_Data" Runat="Server"/>
<asp:RequiredFieldValidator Runat="Server"
   ControlToValidate="MyTextBox"
   ErrorMessage="Please enter a data value"
   Display="Dynamic"
   SetFocusOnError="True"/>
<asp:Label id="Output" Runat="Server"/>

</form>

 كنترل <asp:RangeValidator>
كنترل فوق مسئوليت بررسی و ارزيابی داده ورودی در يك TextBox را برعهده گرفته و ماموريت آن حصول اطمينان از اين موضوع است كه داده درج شده در محدوده مورد نظر است . اين محدوده توسط دو خصلت  MinimumValue  و MaximumValue  مشخص می گردد . فرآيند فوق می تواند در ارتباط با نوع های متفاوت داده  نظير  Date ، اعداد صحيح ، اعداد اعشاری و يا رشته ( مقدار پيش فرض ) اعمال گردد . 

شكل عمومی
شكل عمومی كنترل فوق به صورت زير است :

<asp:RangeValidator id="id" Runat="Server"
   ControlToValidate="controlID"
   Display="Dynamic|None|Static"
   ErrorMessage="string"
   MaximumValue="value"
   MinimumValue="value"
   SetFocusOnError="False|True"
   Type="Currency|Date|Double|Integer|String"
   ValidationGroup="name"
/>

توضيحات 

  • از يك id صرفا" زمانی استفاده می شود كه قرار است به كنترل از طريق اسكريپپ مراجعه گردد .

  • خصلت ErrorMessage ، پيام مورد نظر در صورت بروز خطاء را مشخص می نمايد .

  • خصلت SetFocusOnErrorMessage ، يك blinking cursor را در كنترل TextBox مربوطه به منظور تسهيل در امر درج داده جديد قرار می دهد .

  • خصلت ValidationGroup يك گروه از كنترل های TextBox را كه مجموعه ای از تست های بررسی روی آنها اعمال خواهد شد ، مشخص می نمايد (در مواردی كه دكمه های متفاوت می توانند باعث فعال شدن تست های مختلفی گردند ) .

  • خصلت Display : كنترل RangeValidator ، يك فضای افقی را متناسب با طول رشته مربوط به پيام خطاء اشغال خواهد كرد . در اغلب موارد ، پيام خطاء در كنار TextBox مربوطه نمايش داده می شود . مكان فوق بر روی صفحه همواره نشان داده خواهد شد ( ولو اين كه خطائی اتفاق نيافتد ) . در صورتی كه مقدار خصلت Display معادل Dynamic در نظر گرفته شود ، مكانی برای نمايش پيام خطاء رزو نخواهد شد و  بطور پويا و همزمان با بروز خطاء ايجاد می گردد . 

  • خصلت Type : در صورتی كه نوع داده ورودی مشخص نگردد ،‌ نوع آن به صورت پيش فرض string در نظر گرفته خواهد شد .  يك TextBox خالی ، به عنوان يك نوع داده معتبر ارزيابی خواهد شد . بنابراين ، لازم است كه به همراه كنترل RangeValidator از يك كنترل RequiredFieldValidator نيز استفاده گردد تا اين اطمينان حاصل شود كه با عدم درج داده در TextBox مربوطه با آْن به عنوان يك داده معتبر برخورد نخواهد شد .

  • خصلت های MinimumValue  و MaximumValue  ، حداقل و حداكثر محدوده مجاز برای داده ورودی را مشخص می نمايند .

مثال
در اين مثال به منظور ارزيابی و تست داده ورودی در يك TextBox از دو كنترل RangeValidator  و RequiredFieldValidator استفاده شده است . بنابراين می بايست حتما" در TextBox مقداری درج گردد . با توجه به اين كه مقدار خصلت Type معادل integer و مقادير خصلت های MinimumValue و MaximumValue به ترتيب صفر و نه در نظر گرفته شده اند ،‌داده ورودی می بايست عددی بين صفر تا نه باشد .

<SCRIPT Runat="Server">

   Sub Get_Data (Src As Object, Args As EventArgs)
      Output.Text = "You entered '" & MyTextBox.Text & "'"
   End Sub

</SCRIPT>

<form Runat="Server">

Enter a value between 0 and 9:<br/>
<asp:TextBox id="MyTextBox" Runat="Server"/>
<asp:Button Text="Submit" OnClick="Get_Data" Runat="Server"/>
<asp:RangeValidator Runat="Server"
   ControlToValidate="MyTextBox"
   Type="Integer"
   MinimumValue="0"
   MaximumValue="9"
   ErrorMessage="Please enter an integer in the range 0 to 9"
   Display="Dynamic"
   SetFocusOnError="True"/>
<asp:RequiredFieldValidator Runat="Server"
    ControlToValidate="MyTextBox"
    ErrorMessage="Please enter a data value"
    Display="Dynamic"
    SetFocusOnError="True"/>
<asp:Label id="Output" Runat="Server"/>

</form>

در بخش دوم به بررسی ساير كنترل های Validation خواهيم پرداخت .



جستجو

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


 

 

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



              

 

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