ASP.NET Absolute-Relative Url dönüşümü için yardımcı sınıf
Programlama Yorum yapılmadı »Konu Başlıkları: ASP.NET, HttpRequest, WebPathHelper, Relative & Absolute Url
Uzun süredir asp.net web sitesi sanal dizin (VirtualPath), dizinler, site ana dizini, absolute-relative dizinler ile ilgili bir yazı yazmak istiyordum. En sonunda yardımcı bir statik sınıf hazırladım sizlere faydalı olacağını düşünüyorum. Bu vesile ile yazımıza başlayalım:
Absolute Url: Tam açılımlı internet adresleridir. protokol + etki alanı(veya ip) + port(mevcut ise) + dizin bilgisi içerir ve kesin adres belirtirler. Örneğin “http://mysite.com:4750/images/” tam açılımlı bir internet adresidir.
Relative Url: Bağıl veya göreceli internet adresi şeklinde tabir edebileceğimiz bu tip adresler etki alanı, port v.b. bilgiler içermezler sadece dizin bilgisi ile yerel etki alanı adresini kullanırlar. Örneğin sitenizin etki alanı: “http://mysite.com” olsun “/images/fun/” şeklinde belirtilen göreceli adresin tam açılımı “http://mysite.com/images/fun/” şeklinde olacaktır.
Root Path/Url: Sitenin ana dizinini gösteren adrestir. Tam açılımlı: protokol + etki alanı(veya ip) + port(mevcut ise) + “/”(konmayabilir) şeklinde gösterilebileceği gibi göreceli adresi sadece “/” ile gösterilebilir.
Kısaca internet adres ve dizin ilişkilerine değindikten sonra kolaylık olması için c# da hazırladığım asp.net web sitesi ve programlarınızda size kolaylık sağlayacak programı vereyim. İyi çalışmalar diliyorum.
using System;
using System.Web;
/// <summary>
/// Internet Adres Çözümleme Yardımcısı
/// </summary>
public static class WebPathHelper
{
/// <summary>
/// Internet sitesinin tam açılımlı adresini verir.
/// Örn: “http://mysite.com:4750″
/// </summary>
public static string RootUrl
{
get
{
HttpRequest request = HttpContext.Current.Request;
string authority = request.Url.GetLeftPart(UriPartial.Authority);
string apppath = request.ApplicationPath;
string url = !string.IsNullOrEmpty(apppath.Substring(1)) ?
authority + apppath + “/” : authority + “/”;
if (Uri.IsWellFormedUriString(url, UriKind.Absolute))
return url;
throw new HttpException(string.Format(“Wrong url path: {0}”, url));
}
}
/// <summary>
/// Internet sitesinin göreceli bir adresinden tam açılımlı
/// adresini elde etmenizi sağlar.
/// </summary>
/// <param name=”relativePath”>Göreceli adres Örn: “images/fun”</param>
/// <returns>Parametrede belirtilen göreceli adresin tam açılımlı
/// adresini verir</returns>
public static string GetAbsoluteUrl(string relativePath)
{
return RootUrl + relativePath;
}
}
Son Yorumlar