c# active directory ldap

semraiskndr (1) 8 yıl önce sordu

merhabalar

üniversite öğrencisiyim lisans bitirme projemde cok takıldığımız bir konu var bilgisi olandan acil yardım istiyoruz.

c# kullanarak active directory de ldap a bağlanark verilerimi sicil numarasına göre aratarak donen sonuçları textlerde göstermek istiyorum.

sorunumuz bu daha önce bu konuyla ilgilenen bilgili arkadaşların yardımını rica ediyoruz.

Toplam 1 cevap


cemkara (4215) 8 yıl önce cevapladı

Aşağıda C# ile Active Directory üzerinde nasıl sorgu yapıldığına dair bir örnek var.

Bu örnek üzerinden gidebilirsiniz. 

Kodlardaki username ve password'u kendinize göre düzenleyin. Buradaki user yani kullanıcı Administrator haklarına sahip olmalıdır.

 

 DirectoryEntry rootDSE = rootDSE = new DirectoryEntry("LDAP://OU="",OU=" ",dc="me",dc=com", username, password);

    DirectorySearcher search = new DirectorySearcher(rootDSE);

    search.PageSize = 1001;// To Pull up more than 100 records.

     search.Filter = "(&(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2))";//UserAccountControl will only Include Non-Disabled Users.
      SearchResultCollection result = search.FindAll();

         foreach (SearchResult item in result)
        {
            if (item.Properties["cn"].Count > 0)
            {
                DisplayName = item.Properties["cn"][0].ToString();
            }
            if (item.Properties["mail"].Count > 0)
            {
                EmailAddress = item.Properties["mail"][0].ToString();
            }
            if (item.Properties["SamAccountName"].Count > 0)
            {
                DomainName = item.Properties["SamAccountName"][0].ToString();
            }
            if (item.Properties["department"].Count > 0)
            {
                Department = item.Properties["department"][0].ToString();
            }
            if (item.Properties["title"].Count > 0)
            {
                title = item.Properties["title"][0].ToString();
            }
            if (item.Properties["company"].Count > 0)
            {
                company = item.Properties["company"][0].ToString();
            }
            if (item.Properties["DistinguishedName"].Count > 0)
            {
                memberof = item.Properties["DistinguishedName"][0].ToString();
            }
            if (item.Properties["AccountExpirationDate"].Count > 0)
            {
                string aaa = item.Properties["AccountExpirationDate"][0].ToString();
            }

              dt.Rows.Add(DisplayName, EmailAddress, DomainName, Department, title, company, memberof);
             DisplayName = string.Empty;
             EmailAddress = string.Empty;
             DomainName = string.Empty;
             Department = string.Empty;
             title = string.Empty;
             company = string.Empty;
             memberof = string.Empty;

               rootDSE.Dispose();

Kod stackoverflow'dan alnmıştır.