Dış Dünyayla Proxy Server Üzerinden Konuşmak

Dış Dünyayla Proxy Server Üzerinden Konuşmak

Büyük şirketlerde ve kurumsal yapılar içersinde ISA server olmazsa olmaz yapılardan biridir. Her türlü network trafiğini kontrol altında tutmak için en ideal yoldur. Amaç tüm network trafiğini izlemek ve denetim elde tutumak olunca işin içne kaçınılmaz olan güvenlik girmektedir.

Bir çoğumuzun bildiği gibi ISA Client nesnesi üzerinden dışarıyla konuşmak için üyesi olduğumuz networkte geçerli bir Kullancı Adı ve şifreye sahip olmak şarttır suat.tuncer@sirket.com gibi.

Böyle bir networkte dışarıya çıkmanın tek yolu proxy serverı kullanmaktır. Bunu yapmak için Internet Explorer’ın connection kısmında proxy server adresini girmek yeterlidir.

 

IE 7.0’da ISA Client’ın Yapılandırdığı Proxy Ayarları

 

Fakat yazdığımız uygulamalarda bu yeterli değil. Güvenliğin arttılıdığı ve kısıtlamaların arttığı WAN’larda özellikle dışarıya çıkmak isteyen uygulamalar söz konusuysa bu işi bizim yapmamız gerekir.

Bu yazıda kısaca bu problemin nasıl aşılacağını anlatacağım. Öncelikle basitce webden bir dosya almaya çalışalım.

 

using System;

using System.Collections.Generic;

using System.Text;

 

using System.Net; //webclient nesnesi için

 

namespace ConsoleApplication1

{

    class Program

    {

        static void Main(string[] args)

        {

            WebClient client = new WebClient();

            client.DownloadFile("http://img.blogcu.com/uploads/suattuncer_20051018.jpg", "c:\dosya.jpg");

        }

    }

}

 

Yukarıdaki dosya alınmaya çalışıldığında aşağıdaki gibi bir hatayla karşılaşmaktayım, Bu arada hemen belirteyim bu hatayı, ancak ISA Server bulunan ve Proxy Authentication isteyen bir NetWorkde görebilirsiniz

 

 

Bu problemi aşmanın yolu Domain hesabımızı kullanmak olacaktır. WebClient nesnesi incelendiğinde bu gibi sorunları aşması için Credential gibi bir özelliğe sahip olduğunu göreceksiniz, .Net’de,  System.Net altında yeralan bir çok sınıfın Credential özelliği bulunmaktadır. Bir ağ kimliği oluşturarak Proxy üzerinden yada herhangi bir network üzerinden dışarıya çıkmak için kullanılmaktadır.

 NetworkCredential Nedir ?

Network üzerinde geçerli olan bir kimlik gibi düşünülebilir. Kısıtlanmış ve Authentication’a bağlı noktalarda uyugulamayı kullanan kişinin kendini doğrulamak için çıkartıp göstereceği kimliktir.  Tıpkı yukarıdaki hata mesajında bahsedildiği gibi : “Proxy Authentication Required”

Yukarıdaki kodu aşağıdaki gibi revize edip tekrar çalıştırdığımızda sorunsuz çalıştığını göreceksiniz.

using System;

using System.Collections.Generic;

using System.Text;

 

using System.Net;

 

namespace ConsoleApplication1

{

    class Program

    {

        static void Main(string[] args)

        {

            WebClient client = new WebClient();

 

            //networkde geçerli bir limlik tanımlaması yapılıyor

            NetworkCredential kimlik = new NetworkCredential();

            kimlik.Domain = "sirket.com";

            kimlik.UserName = "suat.tuncer";

            kimlik.Password = "password";

 

            //Proxy server tanımlanıyor

            WebProxy proxyServer = new WebProxy("10.1.0.100", 8080);

 

            //proxy sunucu üzerinden doğrulanacak kimlik

            proxyServer.Credentials = kimlik;

 

            //WebClient nesnesinin dışarıya hangi sunucu üzerinden çıkacağı belirtiliyor

            client.Proxy = proxyServer;

 

            // artık güvenliğe takılmadan dosya indirilebilir

            client.DownloadFile("http://img.blogcu.com/uploads/suattuncer_20051018.jpg", "c:\dosya.jpg");

        }

    }

}

 

NetworkCredential        : Network üzerinde doğrulanacak bir kimlik tanımlamak için kullnılır

WebProxy                          : Konu başında anlattığım Proxy Server’ın ta kendisi kodumuzdaki, Network trafiğinin hangi sunucu üzerinden gerçekleşeceğini belirtir.

 

Belki her durumda değil ama sıkı güvenlik kurallarının olduğu NetWorklerde ihtiyaç duyduğum bir yapıydı.

Soru ve Önerileriniz için

suattuncer@hotmail.com   .::.   http://suattuncer.bloguc.com

Döküman Arama

Başlık :

Kapat