بررسی Validation ها در ASP.Net
- 1399/10/8
- 931
- برنامه نویسی
بررسی روش های اعتبارسنجی در ASP.NET
در این مقاله قصد داریم تا روش های اعتبار سنجی در فریمورک ASP.NET را مورد بررسی قرار دهیم و انواع مختلف آنرا به همراه کدهای مربوطه شرح دهیم:
اعتبارسنجی یا به اصطلاح Data Validation در ASP.NET داده های ورودی از سمت کاربر را مورد بررسی قرار میدهد تا داده های اضافی ، بی ارزش و خارج از چارچوب تعریف شده در پایگاه داده ذخیره نشوند.
Validation ها کلاس های مختلفی دارند که به صورت کامل تمامی نیازهای یک برنامه نویس در خصوص اعتبارسنجی داده هارا پوشش میدهند.
1) Required Field Validator : با استفاده از این کنترل میتوان لزوم یا غیرضروری بودن درج یک داده توسط کاربر را مشخص نمود برای مثال لزوم وارد شدن نام توسط کاربر را میتوان توسط سورس کد زیر در کلاس Data کنترل نمود.
[ (“لطفا نام کاربری وارد شود”=Required (Allow Empty Strings = false, Error Message ]
2) Range Validator : با استفاده از این کنترل میتوان حد اقل و حداکثر مقدار ورودی به یک داده را مشخص نمود برای مثال سورس کد زیر مقدار حداقل و حداکثر کاراکتر برای نام افراد را مشخص میکند.
[("نام نمیتواند بیشتر از 50 کاراکتر باشد"=Max Length (50, Error Message ]
[("نام نمیتواندکمتر از 3 کاراکتر باشد"=Min Length (3, Error Message ]
و همچنین توسط خصیصه ای به نام Data Type که جزئی از کنترل Range Validator می باشد میتوان نوع داده یک ورودی را مشخص نمود. مثال زیر مشخص میکند که داده ورودی باید در فرمت شماره موبایل واردشود.
[(Data Type (DataType.Phone Number]
3) Regular Expression Validator : با استفاده از این کنترل شما می توانید یک الگو را تعیین کرده و مقدار ورودی کاربر باید از آن تبعیت کند .به طور مثال می توانید تعیین کنید که رمز وارد شده باید حداقل شش حرفی و حداقل یک کاراکتر حرف بزرگ هم داشته باشد یا میتوان فرمت ورودی را برای ثبت یک ایمیل تعیین کرد
[RegularExpression(@"^\w+[\w-\.]*\@\w+((-\w+)|(\w*))\.[a-z]{2,3}$")]
4) BaseValidator : توسط این کنترل میتوان یک سری اقدامات رایج و اصولی برای داده های ورودی اعمال نمود برای مثال نمایش داده ها سمت کاربر چگونه باشد برای مثال کنترل Display را مورد بررسی قرار میدهیم :
[("عنوان فایل"=Display(Name]
5) کنترل های مربوط به DataAnnotations.Schema : توسط این کنترل ها میتوان کلید اصلی یا کلید خارجی یا نوع ارتباط را مشخص نمود : برای مثال آیدی یوسر به عنوان کلید خارجی در نظر گرفته شده و آیدی محصولات به عنوان کلید اصلی
[(ForeignKey(nameof(UserId_FK)]
[Key]
{;public int ProductId { get; set
در حالت کلی اعتبار سنجی ها به دو صورت انجام میگیرد 1.سمت سرور 2.سمت کاربر
استفاده از هر دو حالت بسته به استراتژی و سلیقه برنامه نویسان متفاوت می باشد ولی بهترین حالت استفاده از سمت سرور یا Server Side می باشد که اسکریپت های مورد نیاز برای سمت کاربر نیز به صورت اتوماتیک تولید میشود و در این مقاله اعتبار سنجی از سمت سرور مورد نظر قرار گرفته است.
برای یک مثال کلی سورس کد کلاس User جهت اعمال کنترل ها سمت سرور در نظر گرفته شده که تمامی موارد گفته شده مورد استفاده قرار گرفته است
[Display(Name="نام")]
[Required(AllowEmptyStrings =false,ErrorMessage ="نام خود را وارد نمائید ") ]
public string Name { get; set; }
[Display(Name = "نام خانوادگی")]
[Required(AllowEmptyStrings = false, ErrorMessage = "نام خانوادگی خود را وارد نمائید ")]
public string LastName { get; set; }
[Display(Name = "استان")]
[Required(AllowEmptyStrings = false, ErrorMessage = "نام استان خود را وارد نمائید ")]
public string Province { get; set; }
[Display(Name = "شهر")]
[Required(AllowEmptyStrings = false, ErrorMessage = "نام شهر خود را وارد نمائید ")]
public string City { get; set; }
[Display(Name = "آدرس")]
[Required(AllowEmptyStrings = false, ErrorMessage = "آدرس خود را وارد نمائید ")]
[DataType(DataType.MultilineText)]
public string Addrerss { get; set; }
[Display(Name = "شماره موبایل")]
[Required(AllowEmptyStrings = false, ErrorMessage = "شماره موبایل خود را وارد نمائید ")]
[DataType(DataType.PhoneNumber)]
public string Mobile { get; set; }
[Display(Name = "کدپستی")]
[Required(AllowEmptyStrings = false, ErrorMessage = "کدپستی خود را وارد نمائید ")]
[DataType(DataType.PostalCode)]
public string PostalCode { get; set;}
[Display(Name = "ایمیل ")]
[RegularExpression(@"^\w+[\w-\.]*\@\w+((-\w+)|(\w*))\.[a-z]{2,3}$")]
public string Email { get; set; }