【发布时间】:2009-01-22 15:30:22
【问题描述】:
我正在针对 Active Directory 编写一些 c# 代码,并且无休止地尝试使其无法正常工作。以下代码有效,后面的代码无效:
下面的代码使用 "WinNT://" + Environment.MachineName + ",Computer" 进行连接并且工作正常。
DirectoryEntry localMachine = new DirectoryEntry
("WinNT://" + Environment.MachineName + ",Computer");
DirectoryEntry admGroup = localMachine.Children.Find
("Administrators", "group");
object members = admGroup.Invoke("members", null);
foreach (object groupMember in (IEnumerable)members)
{
DirectoryEntry member = new DirectoryEntry(groupMember);
output.RenderBeginTag("p");
output.Write(member.Name.ToString());
output.RenderBeginTag("p");
}
base.Render(output);
我现在正在尝试换行:
"WinNT://" + Environment.MachineName + ",Computer"
到
"LDAP://MyDomainControllerName"
但似乎无论我尝试使用什么值来代替值“MyDomainControllerName”,它都不起作用。
要获取“MyDomainControllerName”值,我右键单击 MyComputer 并按照其他地方的建议复制计算机名称值,但这不起作用。
当我尝试使用上面的 LDAP://RootDSE 选项时,会导致以下错误:
位于路径 LDAP://RootDSE 的 Active Directory 对象不是容器
你提到的成员方法有问题吗?
【问题讨论】:
-
根据您的代码示例,我不完全理解您的问题。您是否尝试使用 LDAP 枚举本地组的成员资格?如果是这样,那就行不通了。
标签: c# active-directory ldap