Получение членства в группах пользователей из Active Directory
Как объясняется в ответе на этот вопрос, System.DirectoryServices.AccountManagement
пространство имен - это то, что вам нужно:
// get the user identity / roles
PrincipalContext pCtx = new PrincipalContext(ContextType.Domain,
Settings.Default.Domain, // domain
Settings.Default.DomainReadUser, // user to access AD with
Settings.Default.DomainReadPass); // password of that user
UserPrincipal user = UserPrincipal.FindByIdentity(pCtx,
User.Identity.Name.Split('\\').Last()); // Windows Auth current user
// this will have all of the security groups, even nested ones
IEnumerable<Principal> userRoles = user.GetAuthorizationGroups();
Посколькувы, кажется, делаете пользователей / группы на локальном компьютере, и с вашей переменной WindowsIdentity вы бы хотели изменить первые несколько строк на:
PrincipalContext pCtx = new PrincipalContext(ContextType.Machine);
UserPrincipal user = UserPrincipal.FindByIdentity(pCtx,
identity.Name.Split('\\').Last());
См. также: Управление принципами безопасности каталога в.NET Framework 3.5