متد های HttpUtility در Asp.Net
دوشنبه 22 تیر 1394در این مقاله متدهای HttpUtility که در Net Framework. ارائه شده است توضیح داه می شوند . همچنین هدف هر متد و نحوه استفاده از آن ها ارائه می گردد .
HttpUtility یک کتابخانه کلاس است که توسط Asp.Net ارائه شده است و شامل مجموعه ای از متد ها می باشد که برای توسعه نرم افزار وب مفید است . این ابزار عمدتا متد هایی برای رمزگذاری و رمز گشایی آدرس (Url) جهت توسعه نرم افزار وب ارائه می کند . اکنون لیستی از متد های HttpUtility را بررسی می کنیم .
1 . UrlEncode/UrlDecode
2 . HtmlEncode/HtmlDecode
3 . HtmlAttributeEncode
4 . ParseQueryString
5 . UrlPathEncode
متد UrlEncode/UrlDecode
هدف اصلی این دو متد رمز گشایی و رمز گذاری آدرس ها است . به دلیل اینکه برخی موارد بصورت نا امن در مرورگر ارسال می شوند نیاز به رمزگذاری داریم . برخی کاراکتر ها برای مرور گر غیر قابل فهم هستند و منجر ببه عدم تطابق ذاذه ها در پایان دریافت می شوند . کاراکتر ها مانند علامت سوال ( ؟ ) ، & ، / و Space ممکن است توسط مرور از بین روند .
برای مثال کاربر می بایست اطلاعات را در Url بصورت زیر ارسال کند :
string Url = "http://localhost:9618/WebForm1.aspx?" + "names=suresh#satheesh#vijay#";
در پایان ، اگر برنامه نویس بخواهد مقدار querystring ادرس مرورگر را بخوانیم بصورت زیر عمل می کنیم:
string QueryStringValues = Request.QueryString["names"];
توسعه دهندگان آن را به عنوان “suresh” که نتیجه مورد نظر نمی باشد می خوانند .
نیاز به رمزگذاری آدرس مرورگر و خواندن مقادیر querystring برای دسترسی به نتیجه مورد نظر داریم .
UrlEncode
مثال
string Url = "http://localhost:9618/WebForm1.aspx?" + HttpUtility.UrlEncode("names=suresh#satheesh#vijay"); Response.Redirect(Url);
زمانیکه UrlEncode برای آدرس اینترنتی بالا استفاده کنیم و آدرس جدید بصورت زیر می باشد :
http://localhost:9618/WebForm1.aspx?names=suresh%23satheesh%23vijay
زمانیکه کاربر سعی دارد مقادیر querystring را در پایان بدست آورد ، نتیجه بصورت زیر می باشد :
“suresh#satheesh#vijay”
مثال :
string QueryStringValues = Request.QueryString["names"]; Response.Write(QueryStringValues);
UrlDecode
این متد برای تبدیل آدرس های رمزگذاری شده به رشته رمزگشایی شده می باشد . اگر می خواهید همه آدرس را در پایان رمزگشایی کنید ، فقط به صورت زیر رمزگشایی کنید :
مثال
string Url = HttpUtility.UrlDecode(Request.RawUrl);
نتیجه مورد انتظار به این شکل است :
"/WebForm1.aspx?names=suresh#satheesh#vijay” ;
همچنین می توانیم مقایر querystring را بصورت زیر رمزگشایی کنیم :
مثال:
string QueryStringValues = Request.QueryString["names"]; QueryStringValues = HttpUtility.UrlDecode(QueryStringValues);
2 . متد HtmlEnCode/HtmlDecode
هدف اصلی HtmlEncode تبدیل رشته HTML-encoded برای انتقال HTTP قابل اطمینان از وب سرور به کاربر می باشد . و همچنین کاراتر هایی که در HTML مجاز نیستند مانند “<”,”>” و فضاها و علائم نگارشی را تبدیل می کند برای مثال ، < با < جایگزین می شود و " با " جایگزین می شود .
HtmlDecode رشته ای که رمزگذاری شده بود را به حالت اصلی تبدیل می کند .
برای مثال کاربر درخواست می کند که اطلاعات بصورت زیر نمایش داده شوند .
مثال : “<Suresh Kumar>”
اگر تبرنامه نویس به اشتباه از دستورات زیر استفاده کند چیزی در مرورگر مشاهده نمی گردد .
Label1.Text = "<Suresh Kumar>"
برای نمایش اطلاعات صحیح از HtmlEncode استفاده می کنیم .
مثال:
Label1.Text = HttpUtility.HtmlEncode("<Suresh Kumar>");
همچنین از Htmlencoding برای اجتناب از Cross-site scripting استفاده می شود .
3 . متد HtmlAttributeEncode
این متد برای رمزگذاری برخی کاراکتر ها مانند “ ، & ، { استفاده می شود . همچنین این متد از متد HtmlEncode سریع تر است .
مثال :
Response.Write(HttpUtility.HtmlAttributeEncode(TextBox3.Text));
4 . متد ParseQueryString
این متد برای بازیابی مقادیر querystring یک آدرس اینترنتی در قالب NameValueCollection استفاده می شود . NameValueCollection در Net framework. با قضای نام System.Collections.Specialized می باشد . در اینجا کاربر یک آدرس اینترنتی با مقادیر querystring دارد سپس برای بازیابی قادیر از ParseQueryString استفاد می شود .
مثال :
string Url = "http://localhost:3873/WebForm1.aspx?" + "param1=val1¶m2=val2¶m3=val3¶m4=val4¶m5=val5"; Response.Redirect(Url);
در پایان ریافت یا در بخش دستورات می توانید مقادیر querystring را با استفاده از ParseQueryString بخوانید .
Uri Uri = new Uri(Request.Url.AbsoluteUri); NameValueCollection nvColl = HttpUtility.ParseQueryString(Uri.Query); string param1value = nvColl["param1"];
در پایان دریافت Request.QueryString همچنین NameValueCollection در مقادیر querystring را بازیابی می کند .
بنابراین ، HttpUtility.ParseQueryString فقط در پایان دریافت استفاده نمیشود بلکه در بخش دستورات نیز استفاده می شود .
5 . متد UrlPathEncode
متد UrlPathEncode شبیه متد UrlEncode می باشد که برای رمزگذاری آدرس اینترنتی استفاده می شود . تنها تفاوت بین این دو این است که UrlEncode فاصله با “+” جایگزین می شود اما در UrlPathEncode فاصله با “%20” جایگزین می شود.
برای مثال اگر بخواهید به این روش رمزگذاری کنید، Url رمزگذاری نمی شود :
string strUrl = "http://localhost:9618/WebForm1.aspx?names=suresh satheesh vidjay"; strUrl = HttpUtility.UrlPathEncode(strUrl);
می توانید از روش زیر برای رمز نگاری querystring استفاده کنید :
string strUrl = "http://localhost:9618/WebForm1.aspx?names" + HttpUtility.UrlPathEncode("suresh satheesh vijay");
- ASP.net
- 2k بازدید
- 2 تشکر