2011-07-20 5 views
6

Estoy tratando de obtener los miembros de un grupo de directorio activo dado utilizando las clases de espacios de nombres DirectoryServices.AccouneManagement en C#.Dominio cruzado de directorio activo: miembros del grupo que utilizan PrincipalContext

Si tengo mi principal constructor de objetos de contexto especificado para un dominio específico, cada vez que accedo al miembro del grupo que proviene de los otros dominios me estoy ejecutando el siguiente error: "Se recibió una referencia del servidor".

escenario es: Tengo diferentes subdominios bajo el dominio raíz Ej: emea.mycorp.com, asia.mycorp.com, asiapacific.mycorp.com, xyz.mycorp.com

Si estoy funcionando el debajo del código del dominio xyz.mycorp.com, para un grupo en asiapacific Si especifico el nombre del servidor en el objeto de contexto principal, podría acceder al grupo.

private PrincipalContext context = 
    new PrincipalContext(ContextType.Domain, "asiapacific domain server name"); 

Si mi grupo tiene los usuarios de otros dominios como la EMEA \ ABCD, el código de abajo falla en UserPrincipal:

GroupPrincipal SearchGroup = GroupPrincipal.FindByIdentity(context, "Dev Team"); 
    GroupName = new List<string>(); 
    foreach (UserPrincipal p in SearchGroup.GetMembers())  
    {   
     GroupName.Add(p.SamAccountName + " " + p.DistinguishedName + " " + p.Name); 
    } 

Así que, ¿Hay alguna manera de que me puede pasar el contexto de la raíz dominio, para que el código funcione independientemente del dominio al que pertenece el usuario. Probé a continuación y con nada de eso con suerte:

private PrincipalContext context = 
    new PrincipalContext(ContextType.Domain, "mycorp.com"); 

o

private PrincipalContext context = 
    new PrincipalContext(ContextType.Domain, "DC=mycorp,DC=com"); 

Respuesta

13

Prueba esto:

new PrincipalContext(ContextType.Domain, "xyz.mycorp.com:3268", "DC=mycorp,DC=com"); 

Esto creará el PrincipalContext utilizar el servicio de catálogo global en el dominio local controlador (por supuesto, esto supone que su DC local también es un GC). Esto permitirá búsquedas en todo el bosque.

+0

THX u haz que mi día !!!!! – GermanSniper

+0

¡Esto funciona! ¡Gracias! – Aaron

+0

Nota: Esto también solo funciona cuando existe una confianza bidireccional entre los dominios. –

Cuestiones relacionadas