Active directory cross domain - membros do grupo usando PrincipalContext
Estou tentando buscar os membros de um determinado grupo de diretório ativo usando as classes de namespaces DirectoryServices.AccouneManagement em c #.
Se eu tiver meu principal construtor de objetos de contexto especificado para um domínio específico, sempre que acessar o membro do grupo pertencente aos outros domínios, executarei o erro abaixo: "Uma referência foi retornada do servidor".
Cenário é: tenho subdomínios diferentes no domínio raiz Por exemplo: emea.mycorp.com, asia.mycorp.com, asiapacific.mycorp.com, xyz.mycorp.com
Se eu estiver executando o código abaixo do domínio xyz.mycorp.com, para um grupo no asiapacific Se eu especificar o nome do servidor no objeto de contexto principal, posso acessar o grup
private PrincipalContext context =
new PrincipalContext(ContextType.Domain, "asiapacific domain server name");
Se meu grupo tiver usuários de outros domínios como emea \ abcd, o código abaixo falhará em 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);
}
So, existe uma maneira que eu possa passar o contexto para o domínio raiz, para que o código funcione independentemente do domínio ao qual o usuário pertence. Eu tentei abaixo e com nada disso com sorte:
private PrincipalContext context =
new PrincipalContext(ContextType.Domain, "mycorp.com");
o
private PrincipalContext context =
new PrincipalContext(ContextType.Domain, "DC=mycorp,DC=com");