Başlık çok doğru olmayabilir fakat şöyle izah edeyim. Bazı sayfalara giriş yapmaya çalışıldığında sizlerden kullanıcı adı / şifre veya sadece kullanıcı adı, şifre istemektedir. İş bu sayfalara genelde gıcık oluruz. Özellikle bir başka sayfayı / sistemi entegre ederken genellikle bu sayfalarla ilgili problem yaşarız. C# ile geliştirme yapan bir arkadaşımızın projesinden alıntı yaparak sizlere paylaşıyorum. Ek olarak PHP vb. dillerle de nasıl kullanılabileceğini göstereceğim.
Bu yetkilendirilmeli sayfaların birden fazla yöntemi olabilir yapım aşamasında. Fakat genellikle CGI tabanlı sistemlerde kullanılır. Günümüz teknolojisi IOT ( Internet Of Tings ( Nesnelerin İnterneti – Bi onlar kalmıştı zaten kullanmayan ) ) vs. birçok arayüzü üstünde gelen network tabanlı ufak elektronik aletlerde bu sistem kullanılmaktadır.
Genellikle bu sayfalara ulaşmaya çalıştığımızda yandaki gibi bir ekran bizi bekler. Bilgileri girdikten sonra oturum kapanıncaya kadar tekrar sormaz. Bu ekranlara dışarıdan URL olarak erişmek istediğimizde yandakine benzer bir ekran bizi karşılar.
C# ile nasıl bağlanacağız ?
Kullanıcı adı ve şifre bilgilerini dışarıdan gönderip oluşturulan istek nesnesi üzerine Credential olarak ekliyoruz ve böylece oturum açıp sisteme giriş yapmış oluyoruz. Ek olarak örneğimizde 192.168.1.100 IP adresli cihaza erişip status.XML dosyasını okuyoruz.
string Username = "admin"; string Password = "123456"; Uri Address = new Uri("http://192.168.1.100:80/status.xml"); HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(Address); request.Credentials = new NetworkCredential(Username, Password); request.Method = "GET"; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); using (Stream stream = response.GetResponseStream()) { StreamReader reader = new StreamReader(stream, Encoding.UTF8); String responseString = reader.ReadToEnd(); ReturnValue = responseString.ToString(); } response.Close(); return ReturnValue;
PHP ile nasıl bağlanacağız ?
Burada araç olarak CURL kullandık. Eğer istenirse duruma göre farklı fonksiyonlarda kullanılabilir. Yine yukarıdaki örnek gibi giriş sonrası status.XML sayfası okunmaktadır.
$url = 'http://admin:[email protected]:80/status.xml'; $ch = curl_init( $url ); curlc_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); echo $response; curl_close($ch);
Anlattığım konu her platformda aynı olmayabilir. Olmaz ise boşuna kızmayın 🙂