c# - 如何使用 Principal Context 连接到 Active Directory?

标签 c# active-directory principalcontext

我在这方面已经有一段时间了,而且我总是得到:

System.DirectoryServices.AccountManagement.PrincipalServerDownException

我认为这意味着我的连接设置(连接字符串)是错误的。

当我在 Active Directory 所在的计算机上的 cmd 上写入“dsquery server”时,我得到:

"CN=DCESTAGIO,CN=SERVERS,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=estagioit,DC=local"

我已尝试通过以下方式进行以下连接:

1:

PrincipalContext thisPrincipalContext = new PrincipalContext(ContextType.Domain, "192.168.56.101", "DC=estagioit,DC=local");

2:

PrincipalContext thisPrincipalContext = new PrincipalContext(ContextType.Domain, "192.168.56.101/DC=estagioit,DC=local");

3:

PrincipalContext thisPrincipalContext = new PrincipalContext(ContextType.Domain, "192.168.56.101/CN=DCESTAGIO,DC=estagioit,DC=local");

4:

PrincipalContext thisPrincipalContext = new PrincipalContext(ContextType.Domain, "192.168.56.101/CN=DCESTAGIO,CN=SERVERS,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=estagioit,DC=local");

5:

PrincipalContext thisPrincipalContext = new PrincipalContext(ContextType.Domain, "LDAP://192.168.56.101/CN=Users,DC=estagioit,DC=local");

还有一些其他的方式...

关于哪里出了问题以及如何使此连接正常工作有什么想法吗?

PS:IP 是正确的,因为我用它来 ping 并且它正在工作。

PPS:如果您有任何建议,我真的、真的需要尽快工作。

最佳答案

如果您查看PrincipalContext 构造函数的文档,应该会很清楚:

public PrincipalContext(ContextType contextType, string name)

public PrincipalContext(ContextType contextType, string name, string container)

所以你基本上需要:

  • 您的上下文类型(此处:ContextType.Domain)
  • 域名(仅尝试“Netbios”名称,例如“YOURDOMAIN”——或为“默认”域保留 NULL)
  • 可选的容器(作为 LDAP 路径 - “专有”名称,完整路径但没有任何 LDAP:// 前缀)

所以尝试这样的事情:

PrincipalContext thisPrincipalContext = 
    new PrincipalContext(ContextType.Domain, "ESTAGIOIT");

PrincipalContext thisPrincipalContext = 
    new PrincipalContext(ContextType.Domain, null);  // default domain

PrincipalContext thisPrincipalContext = 
    new PrincipalContext(ContextType.Domain, "ESTAGIOIT", "DC=estagioit,DC=local");

PrincipalContext thisPrincipalContext = 
    new PrincipalContext(ContextType.Domain, null, "CN=Users,DC=estagioit,DC=local");

关于c# - 如何使用 Principal Context 连接到 Active Directory?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29608353/

相关文章:

powershell - Get-Aduser -Filter将不接受变量

asp.net-mvc - 在现有的 ASP.NET MVC 4.6 web 项目中实现 Active Directory 登录

c# - 使用 PrincipalContext.ValidateCredentials 对本地计算机进行身份验证时出错?

c# - Active Directory 中查询的 PrincipalContext

c# - 继承基类引用C#

C#:包括没有 visual studio 的程序集

c# - DirectoryEntry 刷新杂项问题

c# - UserPrincipal.IsMemberOf 返回 false

C# - MD5 哈希与预期值不匹配

javascript - 数据表格式无效: must have at least 2 columns