Estoy usando la parte System.DirectoryServices.AccountManagement de la biblioteca .Net para interactuar con ActiveDirectory.Obtiene nETBIOSName de un objeto UserPrincipal
haber emplazado GetMembers() en un objeto GroupPrincipal y filtrar los resultados, ahora tengo una colección de objetos UserPrincipal
GroupPrincipal myGroup; // population of this object omitted here
foreach (UserPrincipal user in myGroup.GetMembers(false).OfType<UserPrincipal>())
{
Console.WriteLine(user.SamAccountName);
}
El ejemplo de código anterior se imprimirá nombres de usuario como "TestUser1". Necesito compararlos con una lista proveniente de otra aplicación en el formato "DOMAIN \ TestUser1".
¿Cómo obtengo la parte "DOMAIN" del objeto UserPrincipal?
No puedo agregar simplemente un nombre de dominio conocido ya que hay varios dominios implicados y necesito diferenciar DOMAIN1 \ TestUser1 y DOMAIN2 \ TestUser2.
@marc_s El nombrePrincipalUsuario contiene el nombre en formato [email protected] - No veo cómo convertirlo fácilmente en el formato DOMINIO \ usuario (especialmente porque los dominios implicados son una lista conocida - cada entorno de producción será una lista diferente de dominios que mi entorno dev) – Grhm
También puede usar 'msDS -PrincipalName' propiedad como se describe aquí http://stackoverflow.com/questions/10702188/ –
O use 'user.Sid.Translate (typeof (System.Security.Principal.NTAccount)). ToString()' para obtener el dominio \ Nombre de usuario de eac h miembro del grupo. Consulte http://stackoverflow.com/questions/6759463 –