un utilisateur peut faire partie de plusieurs sous-arbre dans un (basé Ldap) Répertoire instance de service?

StackOverflow https://stackoverflow.com/questions/1270571

Question

Je suis assez nouveau à la programmation du service d'annuaire basé ldap en utilisant le framework .net; ont donc une question idiote de base.

Je voudrais savoir les sous tous les arbres un utilisateur particulier à l'utilisation System.DirectoryServices.Protocol appartient.

Tout d'abord, un utilisateur peut faire partie des multiples sous-arbres dans « une » instance de service d'annuaire? Si oui, comment puis-je trouver tous les sous arbres qu'un utilisateur particulier appartient à l'utilisation de l'espace de noms « de System.DirectoryServices.Protocol « ?

Si un utilisateur appartient à « seulement » un sous-arbre particulier, je pense que je peux trouver tout le DN de l'arbre sous du DN de l'utilisateur. S'il vous plaît laissez-moi savoir s'il y a une autre façon efficace?

Mise à jour:

Pour être précis sur ma question, compte tenu de ce DN est de mon objet utilisateur - « uid = Daffyd, OU = Ducks, OU = personnes, O = A « , que ce soit peut-il exister dans d'autres OU directement ou indirectement? Par exemple. peuvent « OU = Ducks » faire partie d'une autre unité d'organisation que « People »?

Alors ma question suivante, sans faire une sorte de manipulation de chaînes de DN de l'utilisateur, puis-je trouver en quelque sorte le nom de nom unique de nœuds parents que cet utilisateur en utilisant System.DirectoryService.Protocol efficacement?

Était-ce utile?

La solution

Je ne sais pas ce que vous entendez par un utilisateur « appartenance » à un sous-arbre. objet utilisateur existera dans un chemin unique dans le répertoire, et son DN vous dira ce que cette voie est (dans la pratique, il est vice versa: vous connaissez le DN et trouvez l'objet). Tel est le point de l'ensemble du DN == nom distinctif:. Pour un nom unique des objets

Bien sûr, un utilisateur peut appartenir à plusieurs groupes (comme une caractéristique d'Active Directory); ces groupes sont répartis sur le répertoire. Je ne sais pas si vous avez aussi fait référence à des groupes lors de l'utilisation du mot « appartiennent ».

Edit: comme tout type d'objet utilisateur ne peut avoir qu'un seul parent OU, de même, chaque unité d'organisation peut avoir un seul conteneur parent (typiquement O ou OU). Le répertoire entier forme un arbre, aucun nœud peut avoir deux parents.

Le cadre ne traite que dns chaînes. Cependant, il y a des tiers bibliothèques analyseur DN disponible.

Autres conseils

Ceci est basé uniquement sur mon expérience avec Active Directory - mais je suppose d'autres répertoires LDAP vont gérer de la même:

Non, un utilisateur existe qu'une seule fois et ne peut donc se trouver dans un seul conteneur (généralement un OrganizationalUnit). Il n'y a pas notion de « liens symboliques » aux utilisateurs, pour autant que je sais.

Et pourquoi voudriez-vous vraiment un utilisateur d'exister en plusieurs endroits de toute façon ??

Si vous voulez que l'utilisateur fasse partie de plusieurs sous-arbres afin de gérer les autorisations, vous faites tout faux - vous ne devriez pas baser vos décisions ou non pour permettre un certain utilisateur une opération donnée sur son « emplacement » dans la hiérarchie LDAP, mais plutôt sur l'appartenance au groupe.

groupes LDAP sont ce qui sont destinés à gérer les autorisations, et un utilisateur peut être membre d'un certain nombre de groupes - là, vous avez votre relation 1: n - utilisateur peut être membre de groupes, et ces groupes sont responsables des autorisations de traitement.

Marc

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top