Si tiene .NET 3.5, consulte este excelente artículo de MSDN Managing Directory Security Principals in the .NET Framework 3.5.
Muestra las nuevas capacidades de búsqueda mejoradas del espacio de nombres System.DirectoryServices.AccountManagement
de .NET 3.5.
Una buena característica es el método FindByIdentity
, que le permite encontrar un usuario (o grupo) basado en una identidad, ya sea el nombre principal del usuario, el nombre completo, un GUID o el SID, simplemente funcionará :
UserPrincipal user =
UserPrincipal.FindByIdentity(principalContext,
IdentityType.Sid, (value));
usted necesita para asegurarse de proporcionar el SID en el formato adecuado - véase la documentación de MSDN para obtener más información.
Una vez que tenga el objeto principal de usuario, acaba de obtener su nombre de usuario principal:
if(user != null)
{
string upn = user.UserPrincipalName;
}
El código de ejemplo para el artículo incluso tiene dos métodos auxiliares adicionales FindByIdentityGuid
y FindByIdentitySid
para lograr exactamente lo que está buscando !
Ve a verlo y úsala.
Desafortunadamente estoy atrapado en .Net 2.0, pero es bueno saber que esto existe para cuando lo actualicemos. Gracias –