bursa escort bursa escort beylikdüzü escort escort bayan afyon escort escort bayan istanbul escort mersin escort bayan escort kayseri bursa escort escort kayseri bursa escort canlı maç izle

Bir önceki yazımda web api metodlarımıza gelen tüm isteklere cevap dönüyorduk. Peki sadece önceden tanımladığımız iplerin web api metodlarına erişmesini nasıl sağlayabiliriz.

Öncelikle projemize sağ tıklayıp Add -> Class deyip Class ismine IPValidationAttribute yazıyoruz.
Ardından aşağıdaki kod parçasını oluşturduğumuz class içine koplayaıp yapıştıralım.

  public class IPValidationAttribute : ActionFilterAttribute
    {
        public override void OnActionExecuting(HttpActionContext actionContext)
        {
            var ips = new List<string>();
            ips.Add("127.0.0.1");
            ips.Add("::1");

            var context = actionContext.Request.Properties["MS_HttpContext"] as System.Web.HttpContextBase;

            string userIP = context.Request.UserHostAddress;
            try
            {
                ips.AsQueryable().First(x => x == userIP);
            }
            catch (Exception)
            {
                actionContext.Response =
                   new HttpResponseMessage(System.Net.HttpStatusCode.Forbidden)
                   {
                       Content = new StringContent("Tanımlanmayan IP Adresi")
                   };
                return;
            }
        }
    }

Son olarak Global.asax içindeki Application_Start() metoduna

GlobalConfiguration.Configuration.Filters.Add(new IPValidationAttribute());

kod parçasını ekliyoruz. Çalıştıdığımızda web api sadece localhost tarafından gönderilen isteklere cevap dönecektir. Hangi ip adreslerine izin vereceksek OnActionExecuting() metodu içindeki ips listesine bu ipleri eklemeiz gerekmektedir.


Yazar : Emrah Kahraman

Bilgisayar Mühendisi

ASP.NET Web Api 2 Kullanımı – İzin Verilen IP Listesinden Restful İsteği Yazısı için Yorum Yapabilirsiniz

Sponsor
Alexa
Hakkımda
Bağlantılar