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)