C# 找不到具有System.DirectoryServices.AccountManagement的用户或组

C# 找不到具有System.DirectoryServices.AccountManagement的用户或组,c#,.net,active-directory,C#,.net,Active Directory,我正在尝试使用system.DirectoryServices.AccountManagement工具将系统与Active Directory集成。我们的IT人员已经设置了一个广告框,而我的开发框不是这个(或任何)域的一部分 到目前为止,我有3行代码作为测试: var pc = new PrincipalContext(ContextType.Domain, "machine", "CN=Administrator,CN=Users,DC=domain,DC=com", "Password"

我正在尝试使用system.DirectoryServices.AccountManagement工具将系统与Active Directory集成。我们的IT人员已经设置了一个广告框,而我的开发框不是这个(或任何)域的一部分

到目前为止,我有3行代码作为测试:

  var pc = new PrincipalContext(ContextType.Domain, "machine", "CN=Administrator,CN=Users,DC=domain,DC=com", "Password");

  var user = UserPrincipal.FindByIdentity(pc, IdentityType.SamAccountName, "Administrator");

  var gp = GroupPrincipal.FindByIdentity(pc, IdentityType.SamAccountName,  "Admins");
创建PrincipalContext的工作方式如上所述,但是如果我尝试使用域名而不是服务器名,则会出现错误:无法联系服务器。所以,我把这个留在了机器名上

获取用户或组时,我收到一个错误:发生了本地错误

对于用户,我也尝试了同样的结果:

var user = UserPrincipal.FindByIdentity(pc, IdentityType.DistinguishedName, "cn=Administrator,ou=users,dc=domain,dc=com");
所以,总的来说,我很困惑:(

有人有什么建议吗

顺便说一句,我想踢那些认为“发生了本地错误”是一条有用的错误消息的程序员

干杯

PS:我可以在我的机器上很好地使用Sysinternal AD Explorer,并且我可以看到我正在尝试使用的dn


PPS:如果我在创建PrincipalContext时使用machine.domain.com作为名称,它也无法连接。

因此,在您破解解决方案后,这是非常有意义的事情之一。问题是上下文试图使用未配置的协商安全上下文。当我使用SimpleBind时,它工作正常很好:

    var pc = new PrincipalContext(ContextType.Domain, "machine", "DC=domain,DC=com", ContextOptions.SimpleBind, "CN=Administrator,CN=Users,DC=domain,DC=com", "Password");
干杯


PS:一条更有用的错误消息会让我省去几天的时间!若要使用当前用户的凭据进行搜索,请指定以下域:

new PrincipalContext(ContextType.Domain, "xyz.mycorp.com:3268", "DC=mycorp,DC=com");