Saltar al contenido

¿Cómo comprobar si un usuario pertenece a un grupo de AD?

Solución:

Dado que está en .NET 3.5 y versiones posteriores, debería consultar el System.DirectoryServices.AccountManagement (S.DS.AM) espacio de nombres. Lea todo al respecto aquí:

  • Administrar los principales de seguridad de directorios en .NET Framework 3.5
  • Documentos de MSDN sobre System.DirectoryServices.AccountManagement

Básicamente, puede definir un contexto de dominio y encontrar fácilmente usuarios y / o grupos en AD:

// set up domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "DOMAINNAME");

// find a user
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "SomeUserName");

// find the group in question
GroupPrincipal group = GroupPrincipal.FindByIdentity(ctx, "YourGroupNameHere");

if(user != null)
{
   // check if user is member of that group
   if (user.IsMemberOf(group))
   {
     // do something.....
   } 
}

¡El nuevo S.DS.AM hace que sea realmente fácil jugar con usuarios y grupos en AD!

Ligera desviación del ejemplo de @marc_s, implementado en el static void Main() método en Program:

DomainCtx = new PrincipalContext( ContextType.Domain , Environment.UserDomainName );
if ( DomainCtx != null ) {
    User = UserPrincipal.FindByIdentity( DomainCtx , Environment.UserName );
}

DomainCtx y User son ambas propiedades estáticas declaradas bajo Program

Luego, en otras formas, simplemente hago algo como esto:

if ( Program.User.IsMemberOf(GroupPrincipal.FindByIdentity(Program.DomainCtx, "IT-All") )) {
    //Enable certain Form Buttons and objects for IT Users

}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *