SORU
23 HAZİRAN 2009, Salı


Nasıl bir kullanıcı grubunun üyesi olup olmadığını test etmek için LDAP sorgu yazmak için?

Bir kullanıcı (sAMAccountName) belirli bir grubun bir üyesi olup olmadığını test eden bir LDAP sorgusu yazmak istiyorum. Yada 1 sonuç kayıtları 0, bu yüzden bunu yapmak mümkün mü?

Kullanıcı için tüm gruplar ve maç için her birini test edebilirim sanırım ama eğer bir LDAP ifade içine pack miyim diye merak ediyordum.

Herhangi bir fikir?

Teşekkürler

CEVAP
23 HAZİRAN 2009, Salı


Bu filtre, burada bir sorgu ile mümkün olmalıdır:

(&(objectClass=user)(sAMAccountName=yourUserName)
  (memberof=CN=YourGroup,OU=Users,DC=YourDomain,DC=com))

ve ne zaman çalıştırmak karşı LDAP sunucusu olursa olsun sonuç, kullanıcı "kullanıcıadınız" biz de grup üyelerinden birinin "CN=Eğer,OU=Kullanıcılar,DC=YourDomain,DC=com

Deneyin ve eğer bu işe yararsa bakın!

Eğer C kullanırsanız# / VB.Net ve Sistem.DirectoryServices, bu parçacık hile yapmak gerekir:

DirectoryEntry rootEntry = new DirectoryEntry("LDAP://dc=yourcompany,dc=com");

DirectorySearcher srch = new DirectorySearcher(rootEntry);
srch.SearchScope = SearchScope.Subtree;

srch.Filter = "(&(objectClass=user)(sAMAccountName=yourusername)(memberOf=CN=yourgroup,OU=yourOU,DC=yourcompany,DC=com))";

SearchResultCollection res = srch.FindAll();

if(res == null || res.Count <= 0) {
    Console.WriteLine("This user is *NOT* member of that group");
} else {
    Console.WriteLine("This user is INDEED a member of that group");
}

Word Uyarı: Bu sadece test için acil grup üyelikleri, ve değil test için üyelik ne denir "birincil grup" (genellikle "cn=Kullanıcılar") etki. Yok kolu iç içe üyelikleri, örneğin Kullanıcı Bir üye Grubu olan üyesi B Grubu - bu aslında Bir Kullanıcı gerçekten bir üyesi B Grubu olarak değil yansıyan burada.

Marc

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Fuse

    Fuse

    21 Kasım 2005
  • super1988guy

    super1988guy

    9 Aralık 2007
  • wwjoshdo

    wwjoshdo

    25 Mayıs 2009