大家都知道酒酿蛋是非常传统的美胸食品产后丰胸产品,醪糟也叫酒酿,是由糯米或者大米经过酵母发酵而制成的一种风味食品,其产热量高,富含碳水化合物丰胸产品燕窝酒酿蛋、蛋白质、b族维生素、矿物质等,这些都是人体不可缺少的营养成分酒酿蛋丰胸方法。其中酒酿中含的醣化酵素,能促进乳房的二次发育,具有美胸的作用燕窝酒酿蛋丰胸
كنترل های Validation در ASP.NET ( بخش اول )
اين مطلب از طريق سايت شرکت سخاروش در اختيار شما گذاشته شده است .

كنترل های 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"
/>

توضيحات 

مثال
در اين مثال زمانی كه كاربر بر روی 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"
/>

توضيحات 

مثال
در اين مثال به منظور ارزيابی و تست داده ورودی در يك 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 خواهيم پرداخت .


استفاده از اين مطلب  با ذکر منبع و اهداف غيرانتفاعی بلامانع است .
http://www.srco.
ir