Ana Sayfa » Web » ASP.NET » Active Directory nedir, Active Directorye Baglanmak ve Active Directory içinde Arama Yapmak

Active Directory nedir, Active Directorye Baglanmak ve Active Directory içinde Arama Yapmak

Active Directory nedir?

Active Directory, ag üzerinde bulunan tüm bilgilerin (örnegin kullanicilar, gruplar , bilgisayarlar vb.) depolanmasini saglayan ve bu bilgilerin kullanicilar ve yöneticiler tarafindan kolayca kullanilmasini ve bulunmasini saglayan bir servistir. Ayrica güvenlik, oturum açma sirasinda kimlik denetimi gibi islemlerde Active Directory ile bütünlesik olarak çalismaktadir.

Active Directory ile .NET ile yaptigimiz uygulamalari entegre edebilir ve sistemdeki bilgilere read/write hakki ile ulasabiliriz. Verdigimiz haklar dogrultusunda bilgiler üzerinde degisiklikler uygulayabiliriz.

Makalemdeki bu örneklerde C# dili kullanilmistir.

Eklenecek Namespaceler

Öncelikle Aktive Directory’ye ulasmak için asagidaki dizin servislerini (namespaceleri) eklememiz gerekmektedir. Ayrica Projenizde Add Referance diyip .NET tabi altindaki System.DirectoryServices’i eklemeniz gerekiyor.

using System.DirectoryServices;

using System.DirectoryServices.ActiveDirectory;

using System.DirectoryServices.AccountManagement;


Baglanti

Aktive Directory ile kurulacak olan LDAP baglantisini domain adi girilerek saglanabilir,asagidaki örnekte yazilimmutfagi.com domainine baglantisi örneklendirilmistir. Bu baglantiyi Windows authentication ile saglanir. Yani budurumda baglantinin güvenli ve DC’lere ulasiyor olmasi gerekir. Istendigi taktirde kullanici adi ve parolada eklenir.

DirectoryEntry ldapConnection = new DirectoryEntry();

ldapConnection.Path = "LDAP:// dc=yazilimmutfagi,dc=com";

 

//yada

 

DirectoryEntry domain = new DirectoryEntry("LDAP://DC=dcadresi,DC=intra");

 

Seklinde yazilabilir.

 

Active Directory içinde Arama

 

Active Directory içinde bulunan nesne özelliklerine ve sahip olduklari degerlere ulasmak mümkündür. 

Asagidaki kodda yeni bir directory searcher olusturulmus ve bilgisayar nesnelerine göre filtrelenmistir, daha sonra tüm sonuçlar results collectionuna aktarilmistir. Yani bilgisayar nesnelerine göre arama sonucunda result, domiande olan tüm bilgisayarlari tutmaktadir.

……

DirectorySearcher search = new DirectorySearcher(domain);

search.Filter = "(&ObjectCategory=computer)";

SearchResultCollection results = search.FindAll();

……


Eger arama kriterlerimizi daha belirgin bir sekilde yapmak istersek;

……

string groupName = txtGroupName.Text.ToString();

SearchResult result;

DirectorySearcher search = new DirectorySearcher();

search.Filter = String.Format("(cn={0})", groupName);

search.PropertiesToLoad.Add("member");

search.PropertiesToLoad.Add("Description");

……

……

……

 

result = search.FindOne();

 

Bu kod parçasinda aramamizi disaridan aldigimiz gurup adina göre yapmaktayiz.

 

Geri kalan kisimlar elde ettigimiz datayi herhangi bi listbox’a, excele, vb. ekleme-çikarma islemleridir.

Kolay gelsin…

 

Mehmet Serkan ÖZGEN

Yazar Hakkında

Serkan ÖZGEN

Makale Sayısı : 1

Active Directory nedir, Active Directorye Baglanmak ve Active Directory içinde Arama Yapmak

16 yorum
yorumekle yorumekle Toplam 4 Yorum Yapılmış. Sizde yorum yazmak ve soru sormak için bu linki takip edin. -Forum sayfasına yönlendirileceksiniz-

Yorumlar

  • avatar

    Guests

     listeleme ve ekrana yazdirma islemini kodlarinizin yardimi ile gerçeklestirdim.Ancak verilerimi bi dataliste veya bir gridview e aktaramiyorum .Basit bi örnekle bunun nasil gerçekleseceginden de bahsedebilirmisiniz?

    Cevapla Alıntı Yaparak Cevapla
  • avatar

    Guests

     listeleme ve ekrana yazdirma islemini kodlarinizin yardimi ile gerçeklestirdim.Ancak verilerimi bi dataliste veya bir gridview e aktaramiyorum .Basit bi örnekle bunun nasil gerçekleseceginden de bahsedebilirmisiniz?

    Cevapla Alıntı Yaparak Cevapla
  • avatar

    Guests

     Konu üzerinden epeyce bi  vakit geçmis ama bi sorum olacakti,

    ben active directory deki kullanicilari web sitesinin üyeleri kabul edip girisleri active directoryden kontrol etmek istiyorum. Nasil yapabilirim?

    Cevapla Alıntı Yaparak Cevapla
  • avatar

    Guests

    çok yararli oldu tesekkürler.  giris yapan kisinin kullanici adini active directoryden almak istiyorum.

    private

    String GetCurrentUserName()string temp;WindowsPrincipal MyPrincipal = (Thread.CurrentPrincipal as WindowsPrincipal);

    Cevapla Alıntı Yaparak Cevapla