2010-07-08 4 views
0

J'utilise la classe System.DirectoryServices.AccountManagement pour interroger Active Directory.Recherche Active Directory du catalogue global lors de l'utilisation de Sys.AD.AM .Net 3.5 Classe

Je suis en mesure d'interroger le domaine en utilisant divers contextes très bien, mais chaque exemple que j'ai trouvé nécessite un nom de domaine. Normalement, ce ne serait pas un problème, cependant, nous avons quelques utilisateurs qui existent sur un sous-domaine. J'ai trouvé un moyen de rechercher les détails de leur compte en analysant les informations de domaine sur leur user.identity.name.

string loggedUser = User.Identity.Name; 
string domain = loggedUser.Split(new char { '\\' })[0]; 
PrincipalContext ctx = new PrincipalContext(ContextType.Domain, domain); 
using (ctx) { 
    // Do searches, etc. here 
} 

Nous espérions échanger sur l'utilisation de notre GUIDs identifiant unique, comme je suis amené à croire que GUIDs sont uniques dans tous les domaines, alors que les noms peuvent changer (mariages, divorces, etc.)

En utilisant un ancien service web de recherche d'annuaire, nous sommes en mesure d'interroger le catalogue global (GC) et de trouver l'utilisateur indépendamment de son domaine ou sous-domaine, puisque les domaines sont approuvés ... feature 'd'une recherche GC utilisant la nouvelle classe 3.5 S.DS.AM. Est-ce même possible?

Répondre

0

Tout d'abord, le domaine n'est pas nécessaire:

var principalContext = new PrincipalContext(ContextType.Domain); 

Mais cela ne vous aide pas. Je pense que vous devez créer une liste de domaines. Ensuite, vous pouvez utiliser S.DS.AM pour rechercher chaque domaine. Vous pouvez créer votre liste de domaines à l'aide d'un objet Forêt S.DS.ActiveDirectory. Ou vous pouvez faire une recherche GC en utilisant S.DS.DirectorySearcher en utilisant le GC: // moniker.

Questions connexes