¿Cómo agregar un usuario en un dominio de Active Directory diferente en C#?
active-directory cross-domain (2)
Por lo tanto, mi objetivo es poder agregar un usuario de un dominio de Active Directory a otro grupo en un dominio de Active Directory separado.
Me gustaría hacer esto en C #. Sé que hay un espacio de nombres System.DirectoryServices con clases para comunicarse con AD, pero no puedo encontrar ninguna información sobre cómo agregar usuarios entre los dominios.
En el entorno, hay dos controladores de dominio con el mismo bosque primario. Existe una confianza transitoria entre los 2 dominios, llamémosles dominios A y B.
Puedo agregar un usuario de B a un grupo local o universal de dominio dentro del dominio A con la herramienta de Active Directory.
¿Alguien sabe cómo puedo hacer esto programáticamente usando C #?
Lo que funcionó para mí cuando escribí el código para hacer esto hace un par de años:
- Obtenga un DirectoryEntry para el grupo al que desea agregar un miembro.
- Invocar llamada en el grupo DirectoryEntry pasando los argumentos "Agregar" como el nombre del método y el ADsPath del miembro en una matriz.
Un código de muestra fuera de mi cabeza:
DirectoryEntry group = new DirectoryEntry(@"LDAP://CN=foo,DC=domainA");
string memberADsPath = @"LDAP://CN=bar,DC=domainB";
group.Invoke("Add", new Object[] {memberADsPath});
Necesita crear un objeto DirectoryEntry para el grupo. Luego, agrega el DN del usuario que desea agregar al grupo al atributo de miembro en el grupo. Por ejemplo:
DirectoryEntry group = new DirectoryEntry("LDAP://child.domain.com/cn=group,ou=sample,dc=child,dc=domain,dc=com");
string userDN = "cn=user,ou=sample,dc=domain,dc=com";
group.Properties["member"].Add(userDN);
group.CommitChanges();
Probablemente tenga problemas para vincularse al grupo DirectoryEntry. Asegúrese de poder leer los atributos de ese DE antes de intentar agregar un grupo para asegurarse de que su enlace sea exitoso.