Bu site emekli olmuştur. Arşiv amaçlı olarak BT AKADEMİ sponsorluğunda yayın hayatına devam etmektedir.




C#nedir?com
 
YAZAR HAKKINDA
Tolga Aykurt
Tolga Aykurt
www.tolga-aykurt.com
İletişme geçmek için tıklayın.
5 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler: ASP.NET gizle gizlemek Rewrite RewritePath RewriteUrl url url gizleme url gizlemek UrlRewrite İpucu Tolga Aykurt
 
YAZI HAKKINDA
Türü : Serbest Köşe (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Orta
Kategori : İpucu
Yayınlanma Tarihi : 23.3.2010
Okunma Sayısı : 29024
Yorum Sayısı : 0     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
Silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 29.3.2024
Turhal Temizer
Mac OS/X Removing CUDA 29.3.2024
Burak Selim Şenyurt
Kurumsal Yazılımcının Oyun Geliştirme ile İmtihanı 29.3.2024
Burak Selim Şenyurt
Matematik ve Oyun Programlama - Missile Command - Final 29.3.2024
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
RewritePath Metodu İle URL Gizleme
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon

Merhaba Arkadaşlar,

ASP.NET projelerinde geliştirici olarak çalışanlarımız mutlaka page'lerin gerçek path'lerini gizlemeleri gereken bir seneryo ile karşılaşmışlardır. Tabii bunu yapmanın birden fazla yolu var. Özellikle MVC framework ile gelen routing yapısının VS 2008 SP1'den sonra ASP.NET projelerinde de kullanılabiliyor olması bu işi bir hayli kolaylaştırdı. Buna karşın benim bu yazıda ki niyetim sizlerle HttpContext.RewritePath metoduna göz atmak.

Nedir bu HttpContext.RewritePath metodu? Cevabını hemen vereyim, bu metod ile http talebinin gönderildiği sayfanın url'ini değiştirmeden arka tarafta başka bir sayfaya talebi yönlendirebiliriz. Açıklama biraz kafa karıştırıcı olabilir. Daha iyi açıklayabilmek için şöyle bir örneklendirme yapabilirim; "Sayfa1.aspx" isimli page'ten "Sayfa2.aspx" isimli bir sayfaya talepte bulunabilir ancak bu talebe "Sayfa3.aspx" in yanıt vermesini sağlayabilirim. Tüm bunlar olurken de url "Sayfa2.aspx" olarak gözükecektir. İsterseniz gelin bir örnek ile olayı daha iyi anlamaya çalışalım.

Sayfa1.aspx

<body>
    <form id="form1" runat="server">
    <div>
        Hello Sayfa1.aspx
        <br />
        <asp:Button ID="btn" runat="server" Text="Star RewriteUrl" onclick="btn_Click" />
    </div>
    </form>
</body>


 

Sayfa2.aspx

<body>
    <form id="form1" runat="server">
    <div>
        Hello Sayfa2.aspx
    </div>
    </form>
</body>


 

Sayfa3.aspx

<body>
    <form id="form1" runat="server">
    <div>
        Hello Sayfa3.aspx
    </div>
    </form>
</body>


Örnegimiz için kullanacagimiz sayfalarin body'leri yukarida ki gibidir ("Sayfa1.aspx" i başlangı sayfası olarak set etmeyi unutmayalım). Yukarı da metodun kullanımı örneklendirmek için kullandığım örneği burada da kullanıyor olacağız. "Sayfa1.aspx" ten "Sayfa2.aspx" e yapılan http taleplerine "Sayfa3.aspx" yanıt verecek ancak clien browser'ında url olarak "Sayfa2.aspx" gözükecek. O halde uygulama bazında başlatılan talepleri kontrol edebiliyor olmamız lazım. Bunu da Global.asax dosyasının "Application_BeginRequest" event'i içerisinde yapabiliriz. O halde gelin yapılan talepler ile biraz oynayalım.
 

Sayfa1.aspx.cs

protected void btn_Click(object sender, EventArgs e)
{
    Response.Redirect("Sayfa2.aspx");
}


 

Global.asax.cs

protected void Application_BeginRequest(object sender, EventArgs e)
{
    if (HttpContext.Current.Request.Path.Contains("Sayfa2"))
    {
        Context.RewritePath("Sayfa3.aspx?kisi=Tolga AYKURT");
    }
}


 

Sayfa3.aspx.cs

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        Page.Response.Write("Bu sayfaya " + Request.QueryString["kisi"].ToString() + " tarafından talep yapılmıştır...");
    }
}


Sizin de 3'üncü satırda gördüğünüz gibi çeşitli şartlar kullanarak gelen talebi yeniden yönlendirebiliyoruz. Gerçekten çok hoş. Şayet yönlenmek istediğimiz sayfa bulunamazsa (etki alanı dışına talepte bulunamazsınız), HttpException istisnası ile yüzleşmek zorunda kalırız.

RewritePath

Örneklerde de görüldüğü gibi kendi url yapınızı projelerinize uygulayabilirsiniz. Tüm bunlardan bahsettikten sonra çok önemli bir noktayı da belirtmek istiyorum. Microsoft tarafından, arama motoru optimizasyonu, daha kullanıcı dostu olması ve daha güçlü bir yapı içermesinden dolayı ASP.NET routing, RewritePath'e alternatif olarak tavsiye edilmektedir.

Uygulamaya Ait Kaynak Kodlar - RewritePath.rar (25,18 kb)

Makale:
RewritePath Metodu İle URL Gizleme İpucu Tolga Aykurt
  • Yazılan Yorumlar
  • Yorum Yaz
Bu konu hakkında yayınlanan yorum bulunmamaktadır.
"Yorum Yaz" tabını kullanarak sizde yorumlarınızı yazabilirsiniz.
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor