Determinar si SID es usuario o grupo
Pregunta
¿Es posible determinar si un SID determinado es usuario o grupo usando .NET? Tengo una lista de SIDS que necesito para editar en una vista de lista, por lo que para el usuario y el grupo quiero usar diferentes iconos
Solución
Puede intentarlo usando el sistema.directoryservices.accountManagement:
//Get NTAccount, to find out username and domen
NTAccount nt = (NTAccount)sid.Translate(typeof(NTAccount));
string[] fullName = nt.Value.Split(new char[] { '\\' });
//then get group principle
PrincipalContext ctx = new PrincipalContext(ContextType.Domain, fullName[0]);
GroupPrincipal grp = GroupPrincipal.FindByIdentity(ctx, IdentityType.Name, fullName[1]);
//and check whenever this group exists
bool SidIsAGroup = grp != null;
Puede encontrar una pregunta similar (y responder) aquí: ¿Cómo obtener los grupos de un usuario en Active Directory?(C #, ASP.NET)
Otros consejos
Función LookupAccountSID () devuelve el valor SID_NAME_USE que indica el tipo de cuenta.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow