Agregar miembro al grupo AD desde un dominio confiable
Tengo dos dominios, en una relación de confianza, que estoy tratando de administrar desde una aplicación web C #. Para hacer eso, tengo que suplantar a dos usuarios técnicos diferentes, pero eso funciona bien, así que no haré hincapié en esa parte del código.
Para crear ACL adecuadas y fáciles de administrar para el sistema de archivos, debo
Crear un grupo en el dominio A (¡OK!)Encuentre un usuario en el dominio B (¡OK!)Agregue el usuario al grupo (FALLA al confirmar cambios, mensaje de error:There is no such object on the server. (Exception from HRESULT: 0x80072030)
)Si agrego un usuario del mismo dominio, el código funciona perfectamente, por lo que creo que aquí solo me falta una pequeña información parcial. solíaeste documento como referencia y viesta pregunta también (y algunos más citando este mensaje de error) pero ninguno de ellos ayudó.
Código (se eliminó el bloque try-catch para simplificarlo)
// de is a DirectoryEntry object of the AD group, received by the method as a parameter
// first impersonation to search in domainB
// works all right
if (impersonator.impersonateUser("techUser1", "domainB", "pass")) {
DirectoryEntry dom = new DirectoryEntry("LDAP://domainB.company.com/OU=MyOU,DC=domainB,DC=company,DC=com", "techUser1", "pass");
de.Invoke("Add", new object[] { "LDAP://domainB.company.com/CN=theUserIWantToAdd,OU=MyOU,DC=domainB,DC=company,DC=com" });
// de.Invoke("Add", new object[] { "LDAP://domainA.company.com/CN=anotherUserFromDomainA,OU=AnotherOU,DC=domainB,DC=company,DC=com" });
impersonator.undoImpersonation();
}
// second impersonation because the group (de) is in domainA
// and techUser2 has account operator privileges there
if (impersonator.impersonateUser("techUser2", "domainA", "pass"))
{
de.CommitChanges();
impersonator.undoImpersonation();
return true;
}
else
{
// second impersonation was unsuccessful, so return an empty object
return false;
}
La línea 6 funciona, si la depuro o forzo a que las propiedades se escriban en HttpResponse, está claramente allí. Entonces, las consultas LDAP parecen estar bien.
Además, si comento la línea 6 y el comentario 7, entonces básicamente agrego un usuario del mismo dominio, eltodo funciona milagrosamente. Con domainB, estoy atascado. ¿Algún buen consejo?