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

Active Directory nedir, Active Directorye Bağlanmak ve Active Directory içinde Arama Yapmak

Active Directory nedir?

Active Directory, ağ üzerinde bulunan tüm bilgilerin (örneğin kullanıcılar, gruplar , bilgisayarlar vb.) depolanmasını sağlayan ve bu bilgilerin kullanıcılar ve yöneticiler tarafından kolayca kullanılmasını ve bulunmasını sağlayan bir servistir. Ayrıca güvenlik, oturum açma sırasında kimlik denetimi gibi işlemlerde Active Directory ile bütünleşik olarak çalışmaktadır.

Active Directory ile .NET ile yaptığımız uygulamaları entegre edebilir ve sistemdeki bilgilere read/write hakkı ile ulaşabiliriz. Verdiğimiz haklar doğrultusunda bilgiler üzerinde değişiklikler uygulayabiliriz.

Makalemdeki bu örneklerde C# dili kullanılmıştır.

Eklenecek Namespaceler

Öncelikle Aktive Directory’ye ulaşmak için aşağıdaki dizin servislerini (namespaceleri) eklememiz gerekmektedir. Ayrıca Projenizde Add Referance diyip .NET tabı altındaki System.DirectoryServices’i eklemeniz gerekiyor.

using System.DirectoryServices;

using System.DirectoryServices.ActiveDirectory;

using System.DirectoryServices.AccountManagement;


Bağlantı

Aktive Directory ile kurulacak olan LDAP bağlantısını domain adı girilerek sağlanabilir,aşagıdaki örnekte yazilimmutfagi.com domainine bağlantısı örneklendirilmiştir. Bu bağlantıyı Windows authentication ile sağlanır. Yani budurumda bağlantının güvenli ve DC’lere ulaşıyor olması gerekir. İstendiği taktirde kullanıcı adı ve parolada eklenir.

DirectoryEntry ldapConnection = new DirectoryEntry();

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

 

//yada

 

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

 

Şeklinde yazılabilir.

 

Active Directory içinde Arama

 

Active Directory içinde bulunan nesne özelliklerine ve sahip oldukları değerlere ulaşmak mümkündür. 

Aşağıdaki kodda yeni bir directory searcher oluşturulmuş ve bilgisayar nesnelerine göre filtrelenmiştir, daha sonra tüm sonuçlar results collectionuna aktarılmıştır. Yani bilgisayar nesnelerine göre arama sonucunda result, domiande olan tüm bilgisayarları tutmaktadır.

……

DirectorySearcher search = new DirectorySearcher(domain);

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

SearchResultCollection results = search.FindAll();

……


Eğer arama kriterlerimizi daha belirgin bir şekilde 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çasında aramamızı dışarıdan aldığımız gurup adına göre yapmaktayız.

 

Geri kalan kısımlar elde ettiğimiz datayı herhangi bi listbox’a, excele, vb. ekleme-çıkarma işlemleridir.

Kolay gelsin…

 

Mehmet Serkan ÖZGEN

Yazar Hakkında

Serkan ÖZGEN

Makale Sayısı : 1

Active Directory nedir, Active Directorye Bağlanmak ve Active Directory içinde Arama Yapmak

11 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