Bu filtre ile burada bir sorgu oluşturabilmeniz gerekir:
(&(objectClass=user)(sAMAccountName=yourUserName)
(memberof=CN=YourGroup,OU=Users,DC=YourDomain,DC=com))
ve bunu LDAP sunucunuzda çalıştırdığınızda, bir sonuç alırsanız, "yourUserName" kullanıcınız gerçekten "CN = YourGroup, OU = Users, DC = YourDomain, DC = com grubunun bir üyesidir
Deneyin ve çalışıp çalışmadığını görün!
C # / VB.Net ve System.DirectoryServices kullanıyorsanız, bu kod parçacığı hile yapmalıdır:
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");
}
Dikkatli olun: Bu yalnızca anlık grup üyeliklerini test edecek ve etki alanınızdaki "birincil grup" (genellikle "cn = Kullanıcılar") olarak adlandırılan gruptaki üyeliği test etmeyecektir. İç içe geçmiş üyelikleri işlemez, örneğin Kullanıcı A, Grup B'nin üyesi olan Grup A'nın üyesidir - Kullanıcı A'nın gerçekten Grup B'nin bir üyesi olduğu gerçeği burada yansıtılmaz.
üzüm posası