DirectoryServices PrincipalContext可以添加到第一级容器但不能添加到子容器

时间:2012-07-06 03:25:15

标签: c# active-directory directoryservices

不确定我在这里缺少什么。我尝试过使用DirectoryEntry和PrincipalContext并且两种方式都有同样的问题。 AD的结构类似于

root (okwu.edu)
    students
        AGS
        Traditional

我可以使用

将用户添加到学生容器中
PrincipalContext domainContext = new PrincipalContext(ContextType.Domain, "OKWU.EDU", "OU=Students,DC=okwu,DC=edu", systemAccount, systemAccountPassword);

UserPrincipal user = new UserPrincipal(domainContext, model.SamAccountName, model.Password, true);

但如果我将dn用于AGS(或传统)

 PrincipalContext domainContext = new PrincipalContext(ContextType.Domain, "OKWU.EDU", "OU=AGS,OU=Students,DC=OKWU,DC=edu", systemAccount, systemAccountPassword);    

然后我收到服务器上不存在该对象的错误。我找到了第一级容器的东西但没有什么可以解释当我尝试去二级容器时我错过了什么。

2 个答案:

答案 0 :(得分:1)

当然因为你没有将你的主要背景改为“OU = AGS,OU =学生,DC = okwu,DC = edu”:

PrincipalContext domainContext = new PrincipalContext(ContextType.Domain, "OKWU.EDU", "OU=AGS,OU=Students,DC=okwu,DC=edu", systemAccount, systemAccountPassword); 

答案 1 :(得分:1)

我可以想到三种不同的可能性。

可能性1:

您确定DN确实是OU=AGS,OU=Students,DC=OKWU,DC=edu吗?

OU可能包含容器。因此,您的DN可能实际上看起来像这样

CN=AGS,OU=Students,DC=OKWU,DC=edu

获取ADexplorer或ADSIedit。首先查看他们的distinguishedName。

可能性2:

您有多个域控制器。其中一个域控制器已创建OU=AGS,OU=Students,DC=OKWU,DC=edu但未创建其他域控制器。这可能是由于复制设置不正确

可能性3:

您的 SystemAccount 无权查看OU=AGS,OU=Students,DC=OKWU,DC=edu。为了证明这一点,您可以在使用ADSIedit时尝试以 SystemAccount 身份登录。