2012-07-06 3 views
0

Vous ne savez pas exactement ce qui me manque ici. J'ai essayé d'utiliser DirectoryEntry et PrincipalContext et j'ai le même problème dans les deux sens. L'AD est structuré commeDirectoryServices PrincipalContext peut être ajouté au conteneur de premier niveau mais pas au conteneur enfant

root (okwu.edu) 
    students 
     AGS 
     Traditional 

Je peux ajouter des utilisateurs au conteneur étudiant

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); 

mais si j'utilise le dn pour AGS (ou traditionnelle)

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

Puis-je obtenir une erreur que l'objet n'existe pas sur le serveur. J'ai trouvé des trucs pour le container de premier niveau mais rien pour expliquer ce qui me manque quand j'essaye d'aller au container de second niveau.

Répondre

1

je peux penser à trois possiblités différentes.

Possibilité 1:

Êtes-vous sûr que le DN est vraiment OU=AGS,OU=Students,DC=OKWU,DC=edu?

OU peut contenir un récipient. Il est donc possible que votre DN ressemble à ceci:

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

Obtenez ADexplorer ou ADSIedit. Découvrez leur distinguishedName en premier.

Possibilité 2:

Vous avez plusieurs contrôleurs de domaine. Un des contrôleurs de domaine a obtenu OU=AGS,OU=Students,DC=OKWU,DC=edu créé mais pas les autres. Cela peut être dû à la configuration incorrecte de la réplication

Possibilité 3:

Votre SystemAccount ne dispose pas des autorisations pour voir OU=AGS,OU=Students,DC=OKWU,DC=edu. Pour le prouver, vous pouvez essayer de vous connecter en tant que SystemAccount lorsque vous utilisez ADSIedit.

+0

J'ai copié le dn de adsiedit. Je vais essayer avec CN = nom d'utilisateur ajouté sur le DN et l'essayer. – Brian

+0

Une autre raison possible est que vous avez plusieurs contrôleurs de domaine. Un contrôleur de domaine a obtenu le ou l'autre –

+0

Une autre raison possible est que votre compte système n'a pas assez d'autorisations pour voir l'unité d'organisation de votre enfant. Connectez-vous en utilisant votre compte système lorsque vous utilisez ADSIEDIT –

1

Certainement parce que vous ne changez pas votre contexte principale à "OU = AGS, OU = Etudiants, DC = Okwu, DC = edu":

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

c'est quand je reçois l'objet n'existe pas d'erreur. Je suis allé à ADSIEdit et copié le dn du conteneur. en utilisant le OU = AGS, OU = STudents, DC = OKWU, DC = EDU Je peux lire les enregistrements de AD, mais en essayant de créer une nouvelle entrée est quand il échoue. – Brian

+0

Appelez-vous vraiment 'user.Save();' – JPBlanc

Questions connexes