c#针对LDAP上的Active Directory
发布时间:2020-12-15 23:51:27 所属栏目:百科 来源:网络整理
导读:我正在编写针对Active Directory的一些c#,并且无休止地试图让它工作无济于事.以下代码有效,其后面的代码不起作用: 下面的代码使用“WinNT://”Environment.MachineName“,Computer”来建立连接并正常工作. DirectoryEntry localMachine = new DirectoryEnt
我正在编写针对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对象不是容器 这是你提到的成员方法的问题吗? 解决方法
使用.NET Framework连接到AD时,可以使用“无服务器”绑定,也可以指定每次使用的服务器(服务器绑定).
以下是使用两者的示例: // serverless DirectoryEntry rootConfig = new DirectoryEntry("LDAP://dc=domainname,dc=com"); // server bound DirectoryEntry rootEntry = new DirectoryEntry("LDAP://domainControllerName/dc=domainName,dc=com"); 我认为你误入歧途的地方是你忘了在你的域名中包含FQDN.希望这可以帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |