sAMAccountName ve Etki Alanına göre Active Directory LDAP Sorgusu

Bir LDAP deposunun sAMAccountName ve Domain ile sorgusunu nasıl yaparsınız? Active Directory veya LDAP terimleriyle adlandırılan "domain" özelliği nedir?

Şimdiye kadar filtre için sahip olduğum şey bu. Alan adını ekleyebilmek istiyorum:

(&(objectCategory=Person)(sAMAccountName=BTYNDALL))

"Domain" bir LDAP nesnesinin özelliği değildir. Daha çok nesnenin depolandığı veritabanının adı gibidir.

Dolayısıyla, bu veritabanında arama yapmak için doğru veritabanına bağlanmanız gerekir (LDAP terimleriyle: "domain/directory server"'a bağlanmak).

Başarılı bir şekilde bağlandıktan sonra, sorgunuz mevcut haliyle ihtiyacınız olan tek şeydir.

BTW: "ObjectClass=user" yerine "ObjectCategory=Person" seçmek iyi bir karardı. AD'de, ilki mükemmel performansa sahip bir "indeksli özellik", ikincisi indeksli değil ve biraz daha yavaş.

Yorumlar (1)

Aramanızı alan adı içinde gerçekleştirmelisiniz:

http://msdn.microsoft.com/en-us/library/ms677934(VS.85).aspx

Yani, temelde bu alan içinde arama yapmak için bir alana bağlanmanız gerekir.

Yorumlar (0)

NET kullanıyorsanız, DirectorySearcher sınıfını kullanın. Etki alanınızı yapıcıya bir dize olarak aktarabilirsiniz.

// if you domain is domain.com...
string username = "user"
string domain = "LDAP://DC=domain,DC=com";
DirectorySearcher search = new DirectorySearcher(domain);
search.Filter = "(SAMAccountName=" + username + ")";
Yorumlar (3)