ASP.NET - اعتبار سنجی

کنترل‌های اعتبارسنجی ASP.NET داده‌های ورودی کاربر را تأیید می‌کنند تا اطمینان حاصل شود که داده‌های بی‌فایده، احراز هویت نشده یا متناقض ذخیره نمی‌شوند.ASP.NET کنترل های اعتبارسنجی زیر را ارائه می دهد:RequiredField ValidatorRangeValidatorCompare ValidatorRegularExpressionValidatorCustom Validatorاعتبار سنجی خلاصهکلاس BaseValidatorکلاس‌های کنترل اعتبارسنجی از کلاس BaseValidator به ارث برده می‌شوند، بنابراین ویژگی‌ها و روش‌های آن را به ارث می‌برند. بنابراین، نگاهی به ویژگی‌ها و روش‌های این کلاس پایه، که برای همه کنترل‌های اعتبارسنجی مشترک هستند، کمک می‌کند:توضیحات اعضاControlToValidate کنترل ورودی را برای تأیید اعتبار نشان می دهد.نمایشگر نحوه نمایش پیام خطا را نشان می دهد.EnableClientScript نشان می دهد که آیا اعتبار سنجی سمت مشتری انجام می شود یا خیر.Enabled تایید کننده را فعال یا غیرفعال می کند.ErrorMessage رشته خطا را نشان می دهد.متن خطای متن در صورت عدم موفقیت در تأیید، نشان داده می شود.IsValid نشان می دهد که آیا مقدار کنترل معتبر است یا خیر.SetFocusOnError نشان می دهد که آیا در صورت وجود یک کنترل نامعتبر، فوکوس باید به کنترل ورودی مرتبط تغییر کند یا خیر.ValidationGroup گروه منطقی چند اعتبار سنج که این کنترل به آن تعلق دارد.Validate() این متد کنترل را مجدداً تأیید می کند و ویژگی IsValid را به روز می کند.RequiredFieldValidator Controlکنترل RequiredFieldValidator تضمین می کند که فیلد مورد نیاز خالی نیست. به طور کلی به یک جعبه متن گره خورده است تا ورودی را به جعبه متن اجباری کند.سینتکس کنترل به صورت زیر است:<asp:RequiredFieldValidator ID="rfvcandidate" runat="server" ControlToValidate ="ddlcandidate" ErrorMessage="Please choose a candidate" InitialValue="Please choose a candidate"> </asp:RequiredFieldValidator>RangeValidator Controlکنترل RangeValidator تأیید می کند که مقدار ورودی در یک محدوده از پیش تعیین شده قرار می گیرد.دارای سه ویژگی خاص است:توضیحات خواصنوع این نوع داده ها را مشخص می کند. مقادیر موجود عبارتند از: ارز، تاریخ، دو برابر، عدد صحیح و رشته.MinimumValue حداقل مقدار محدوده را مشخص می کند.MaximumValue حداکثر مقدار محدوده را مشخص می کند.سینتکس کنترل به صورت زیر است:CompareValidator Controlکنترل CompareValidator یک مقدار در یک کنترل را با یک مقدار ثابت یا یک مقدار در یک کنترل دیگر مقایسه می کند.دارای خواص ویژه زیر است:توضیحات خواصنوع این نوع داده را مشخص می کند.ControlToCompare مقدار کنترل ورودی را برای مقایسه با آن مشخص می کند.ValueToCompare مقدار ثابتی را برای مقایسه با آن مشخص می کند.اپراتور عملگر مقایسه را مشخص می کند، مقادیر موجود عبارتند از: Equal، NotEqual، GreaterThan، GreaterThanEqual، LessThan، LessThanEqual و DataTypeCheck.سینتکس اصلی کنترل به شرح زیر است:<asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="CompareValidator"> </asp:CompareValidatorRegularExpressionValidatorRegularExpressionValidator اجازه می دهد تا متن ورودی را با تطبیق با الگوی یک عبارت منظم اعتبار سنجی کنید. عبارت منظم در ویژگی ValidationExpression تنظیم شده است.جدول زیر ساختارهای نحو رایج مورد استفاده برای عبارات منظم را خلاصه می کند:شرح فرارهای شخصیت\b با بک اسپیس مطابقت دارد.\t با یک برگه مطابقت دارد.با بازگشت کالسکه مطابقت دارد.\v با یک برگه عمودی مطابقت دارد.\f با فید فرم مطابقت دارد.\n با یک خط جدید مطابقت دارد.\ شخصیت فرار.جدای از تطابق یک کاراکتر، یک کلاس از کاراکترها را می توان مشخص کرد که می توان آنها را با هم تطبیق داد، به نام متاکاراکترها.توضیحات متا کاراکترها. با هر کاراکتری به جز \n مطابقت دارد.[abcd] با هر شخصیت در مجموعه مطابقت دارد.[^abcd] هر شخصیتی را در مجموعه حذف می کند.[2-7a-mA-M] با هر نویسه مشخص شده در محدوده مطابقت دارد.\w با هر نویسه الفبایی عددی و خط زیر مطابقت دارد.\W با هر کاراکتر غیر کلمه ای مطابقت دارد.\s با کاراکترهای فضای خالی مانند، فاصله، برگه، خط جدید و غیره مطابقت دارد.\S با هر کاراکتر غیر فضای سفید مطابقت دارد.\d با هر کاراکتر اعشاری مطابقت دارد.\D با هر کاراکتر غیر اعشاری مطابقت دارد.برای تعیین تعداد دفعاتی که یک کاراکتر ظاهر می شود، می توان کمیت کننده ها را اضافه کرد.شرح کمیت* ASP.NET - اعتبار سنجییا بیشتر مسابقات.+ یک یا چند مسابقه.? صفر یا یک مسابقه.{N} N مطابقت دارد.{N،} N یا بیشتر منطبق است.{N,M} بین N و M مطابقت.سینتکس کنترل به صورت زیر است:<asp:RegularExpressionValidator ID="string" runat="server" ErrorMessage="string" ValidationExpression="string" ValidationGroup="string"> </asp:RegularExpressionValidator>Custom Validatorکنترل CustomValidator اجازه می دهد تا روال های اعتبار سنجی سفارشی خاص برنامه را برای اعتبار سنجی سمت مشتری و سرور بنویسید.اعتبار سنجی سمت مشتری از طریق ویژگی ClientValidationFunction انجام می شود. روال اعتبارسنجی سمت سرویس گیرنده باید به زبان برنامه نویسی مانند جاوا اسکریپت یا VBScript نوشته شود که مرورگر بتواند آن را بفهمد.روال اعتبارسنجی سمت سرور باید از کنترل کننده رویداد ServerValidate کنترل فراخوانی شود. روال اعتبارسنجی سمت سرور باید به هر زبان دات نت مانند C# یا VB.Net نوشته شود.نحو اصلی برای کنترل به شرح زیر است:<asp:CustomValidator ID="CustomValidator1" runat="server" ClientValidationFunction=.cvf_func. ErrorMessage="CustomValidator"> </asp:CustomValidator>اعتبار سنجی خلاصهکنترل ValidationSummary هیچ اعتبارسنجی انجام نمی دهد اما خلاصه ای از تمام خطاهای صفحه را نشان می دهد. خلاصه مقادیر خاصیت ErrorMessage را در تمام کنترل‌های اعتبارسنجی که اعتبارسنجی ناموفق هستند را نشان می‌دهد.دو ویژگی متقابل زیر پیام خطا را فهرست می کنند:ShowSummary: پیام های خطا را در قالب مشخص شده نشان می دهد.ShowMessageBox: پیام های خطا را در یک پنجره جداگانه نشان می دهد.نحو برای کنترل به صورت زیر است:<asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode = "BulletList" ShowSummary = "true" HeaderText="Errors:" />گروه های اعتبارسنجیصفحات پیچیده دارای گروه های مختلفی از اطلاعات هستند که در پنل های مختلف ارائه می شوند. در چنین شرایطی، ممکن است نیاز به انجام اعتبارسنجی جداگانه برای گروه جداگانه ایجاد شود. این نوع وضعیت با استفاده از گروه های اعتبار سنجی مدیریت می شود.برای ایجاد یک گروه اعتبارسنجی، باید کنترل‌های ورودی و کنترل‌های اعتبارسنجی را با تنظیم ویژگی ValidationGroup در یک گروه منطقی قرار دهید.مثالمثال زیر فرمی را توصیف می کند که باید توسط همه دانش آموزان یک مدرسه، که به چهار مجلس تقسیم شده است، برای انتخاب رئیس مدرسه پر کنند. در اینجا، ما از کنترل های اعتبارسنجی برای تایید ورودی کاربر استفاده می کنیم.این فرم در نمای طراحی است:کد فایل محتوا به صورت زیر است:<form id="form1" runat="server"> <table style="width: 66%;"> <tr> <td class="style1" colspan="3" align="center"> <asp:Label ID="lblmsg" Text="President Election Form : Choose your president" runat="server" /> </td> </tr> <tr> <td class="style3"> Candidate: </td> <td class="style2"> <asp:DropDownList ID="ddlcandidate" runat="server" style="width:239px"> <asp:ListItem>Please Choose a Candidate</asp:ListItem> <asp:ListItem>M H Kabir</asp:ListItem> <asp:ListItem>Steve Taylor</asp:ListItem> <asp:ListItem>John Abraham</asp:ListItem> <asp:ListItem>Venus Williams</asp:ListItem> </asp:DropDownList> </td> <td> <asp:RequiredFieldValidator ID="rfvcandidate" runat="server" ControlToValidate ="ddlcandidate" ErrorMessage="Please choose a candidate" InitialValue="Please choose a candidate"> </asp:RequiredFieldValidator> </td> </tr> <tr> <td class="style3"> House: </td> <td class="style2"> <asp:RadioButtonList ID="rblhouse" runat="server" RepeatLayout="Flow"> <asp:ListItem>Red</asp:ListItem> <asp:ListItem>Blue</asp:ListItem> <asp:ListItem>Yellow</asp:ListItem> <asp:ListItem>Green</asp:ListItem> </asp:RadioButtonList> </td> <td> <asp:RequiredFieldValidator ID="rfvhouse" runat="server" ControlToValidate="rblhouse" ErrorMessage="Enter your house name" > </asp:RequiredFieldValidator> <br /> </td> </tr> <tr> <td class="style3"> Class: </td> <td class="style2"> <asp:TextBox ID="txtclass" runat="server"></asp:TextBox> </td> <td> <asp:RangeValidator ID="rvclass" runat="server" ControlToValidate="txtclass" ErrorMessage="Enter your class (6 - 12)" MaximumValue="12" MinimumValue="6" Type="Integer"> </asp:RangeValidator> </td> </tr> <tr> <td class="style3"> Email: </td> <td class="style2"> <asp:TextBox ID="txtemail" runat="server" style="width:250px"> </asp:TextBox> </td> <td> <asp:RegularExpressionValidator ID="remail" runat="server" ControlToValidate="txtemail" ErrorMessage="Enter your email" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"> </asp:RegularExpressionValidator> </td> </tr> <tr> <td class="style3" align="center" colspan="3"> <asp:Button ID="btnsubmit" runat="server" ="btnsubmit_Click" style="text-align: center" Text="Submit" style="width:140px" /> </td> </tr> </table> <asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode ="BulletList" ShowSummary ="true" HeaderText="Errors:" /></form>کد پشت دکمه ارسال:protected void btnsubmit_Click(object sender, EventArgs e){ if (Page.IsValid) { lblmsg.Text = "Thank You"; } else { lblmsg.Text = "Fill up all the fields"; }}