مقدمة:
URL أو Uniform Resource Locator ، هو عبارة عن سلسلة نصية تستخدم بواسطة متصفح الانترنت أو برامج أخرى ليقوم بتعريف مصادر شبكة الانترنت على الانترنت، والمصادر هي عبارة عن ملفات والتي تكون صفحات عادية أو صور أو حتى برامج...
ومهمة URL تكمن في أنه يحتوي على ثلاثة مكونات ضمن سلسلته النصية:
1- بروتوكول الشبكة
2- عنوان الموقع المضيف
3- موقع الملفات المطلوبة
وتكون مرتبة على الشكل التالي:
protocol :// host / location
مثلاً :
http://www.arabteam2000-forum.com/index.php
من الملاحظ أن ASP.NET توفر بيئة عمل رائعة وحسب طلب الزبون في التعامل مع URL فهناك أساليب كثيرة وسأتطرق للبعض منها كالتي تساعد بالتمويه حيث سيكون URL المستخدم في نقل البيانات شيء و URL الظاهر شيء آخر تماماً.
قبل البدء يجب الحصول على عنوان الصفحة الحالي وقد يلزم للتأكد من النتائج:
string url = HttpContext.Current.Request.Url.AbsoluteUri;
النتيجة
http://localhost:1302/TRAIN/Default.aspx
string path = HttpContext.Current.Request.Url.AbsolutePath;
النتيجة
/TRAIN/Default.aspx
string host = HttpContext.Current.Request.Url.Host;
النتيجة
Localhost
الطريقة الأولى BeginRequest :
يحتوي المشروع Train1 على Default.aspx ، Default2.aspx ، Global.aspx
الكود التالي في Global.asax
void Application_BeginRequest(object sender, EventArgs e)
{
HttpContext MyContext = HttpContext.Current;
string CurrentURL_Path = Request.Path.ToLower();
if (CurrentURL_Path.StartsWith("/train1/default.aspx"))
{
MyContext.RewritePath("Default2.aspx");
}
}من الطبيعي عند فتح المشروع فإنه يذهب تلقائياً إلى Default.aspx لكن BeginRequest سيعمل عند بدأ عملية الطلب للصفحة، وسيفحص شرط عملية طلب Default.aspx وإذا تحقق سيقوم بالانتقال تلقائياً إلى Default2.aspx والجميل في الموضوع أن الطلب السابق لـ Default.aspx هو الذي سيظهر كعنوان لأي صفحة نكون موجودين بها وفي حالتنا هي Default2.aspx، فنكون موجودين في صفحة والعنوان الظاهر لصفحة آخرى.
ملاحظة : انتبه لحالة الأحرف عند كتابة الشرط.