我有一个LDAP地址到某个组,例如LDAP:// CN = Users,CN = Builtin,DC = tt,DC = s,DC = LOCAL 我如何获得属于该组的用户? 最初,我认为这样做会有效:
DirectoryEntry group = new DirectoryEntry("LDAP://CN=Users,CN=Builtin,DC=tt, DC=s, DC=LOCAL");
foreach (object user in group.Properties["member"])
{
DirectoryEntry _user = new DirectoryEntry("LDAP://" + user);
Console.WriteLine(_user.Properties["cn"].Value.ToString());
}
但是,这不会打印该组的任何成员。事实上,foreach循环甚至没有被执行,因为它没有找到该组的任何成员。但是,当我查看数据库中的组时,它显然有几个成员。
答案 0 :(得分:0)
我认为即使在第一个DirectoryEntry对象中,域部分也会丢失。
我使用String.Format("LDAP://{0}/{1}", _dc, distinguishedName_)
其中 dc是此域名部分,且distinguishedName 是您的"对象用户"到字符串,以便有类似
LDAP://dc1.corp.domain.com/OU=Service Accounts,OU = Corp Objects,DC = corp,DC = domain,DC = com
查看here。