ASP.NET'te Local'de Çalışıp Çalışmadığımızı Öğrenme

Localhost'ta farklı gerçek domainde farklı işler yapmak isteyebilirsiniz. :)

Diyelim ki, e-ticaret sitesi kurdunuz. Ödeme onayından sonraki iş akışının düzgün işleyip işlemediğini kontrol etmek istiyorsunuz. (Stok düşümü, alıcı/satıcıya eposta gönderimi, vb.)

İşte bu noktada localhostta çalışıyorsak ödeme onayını pas geç (ya da yapılmış gibi işlem yap), gerçek domainde isek kredi kartı bilgilerini kullanıcıdan iste gibi kolay yoldan bir sistem oluşturabiliriz kendimize.

Bunun için hazır bir propertymiz var: Request.IsLocal.

Kullanımı da son derece kolay:

protected void Page_Load(object sender, EventArgs e)
{
    if (Request.IsLocal)
    {
        Response.Write("Localhosttayız");
    }
    //else
    //{
        // gerçek domaindeyiz.
     //}
}

Bu kadar. Eğer bir class içerisinde kullanacaksak Request e HttpContext üzerinden erişmeliyiz:

if (HttpContext.Current.Request.IsLocal)
    {
        // localhosttayız
    }

Peki IsLocal, local de olup olmadığımıza nasıl karar veriyor, .

Cevap: Tabii ki IP'ye göre. Eğer IP'miz "127.0.0.X" ya da "::1" ise localdeyiz demektir.

O zaman IsLocal'i kendimiz de implement edebiliriz:

public bool IsLocal
{
    get
    {
        var ip = this.UserHostAddress;
        if (!string.IsNullOrEmpty(ip))
        {
            if ((ip == "127.0.0.1") || (ip == "::1"))
            {
                return true;
            }
            if (ip == this.LocalAddress)
            {
                return true;
            }
        }
        return false;
    }
}

gibi.

Peki ya güvenlik?

Cevap: Burada yazdığına göre sorunsuz kullanabilirsiniz. Bazı kaynaklarda da %100 güvenebilirsiniz diyor.

Herkese iyi çalışmalar diliyorum. :)