private void UpdateRoles() { foreach (var role in Roles.Select(x => new { x.Id, Name = x.Name }).Where(x => !ActiveDirectorySettings.RoleNameToGroupNameMapping.Keys.Contains(x.Name, StringComparer.OrdinalIgnoreCase))) { Roles.Remove(role.Id); } foreach (string roleName in ActiveDirectorySettings.RoleNameToGroupNameMapping.Keys) { string groupName = ActiveDirectorySettings.RoleNameToGroupNameMapping[roleName]; Log.Verbose("AD: Updating role {RoleName} (groupName {GroupName})", roleName, groupName); try { GroupPrincipal group; PrincipalContext pc = ADHelper.GetPrincipalGroup(groupName, out group); RoleModel roleModel = new RoleModel { Id = group.Guid.Value, Name = roleName, Members = ADHelper.GetGroupMembers(group).Where(x => x is UserPrincipal).Select(x => x.Guid.Value) .ToArray() }; Roles.AddOrUpdate(roleModel); Log.Verbose("AD: Updated role {RoleName} OK", roleName); } catch (Exception ex) { Log.Error(ex, "AD: Failed to update role {roleName}", roleName); } } }
private void UpdateRoles() { foreach (string role in Roles.Select(x => x.Name).Where(x => !ActiveDirectorySettings.RoleNameToGroupNameMapping.Keys.Contains(x, StringComparer.OrdinalIgnoreCase))) { Roles.Remove(role); } PrincipalContext principalContext = new PrincipalContext(ContextType.Domain, ActiveDirectorySettings.DefaultDomain); foreach (string roleName in ActiveDirectorySettings.RoleNameToGroupNameMapping.Keys) { GroupPrincipal group = GroupPrincipal.FindByIdentity(principalContext, IdentityType.Name, ActiveDirectorySettings.RoleNameToGroupNameMapping[roleName]); RoleModel roleModel = new RoleModel() { Name = roleName, Members = group.GetMembers().Where(x => x is UserPrincipal).Select(x => x.UserPrincipalName).ToArray() }; Roles.AddOrUpdate(roleModel); } }
private void UpdateRoles() { foreach (var role in Roles.Select(x => new { x.Id, Name = x.Name }).Where(x => !ActiveDirectorySettings.RoleNameToGroupNameMapping.Keys.Contains(x.Name, StringComparer.OrdinalIgnoreCase))) { Roles.Remove(role.Id); } foreach (string roleName in ActiveDirectorySettings.RoleNameToGroupNameMapping.Keys) { GroupPrincipal group; var pc = ADHelper.GetPrincipalGroup(ActiveDirectorySettings.RoleNameToGroupNameMapping[roleName], out group); RoleModel roleModel = new RoleModel() { Id = group.Guid.Value, Name = roleName, Members = group.GetMembers(true).Where(x => x is UserPrincipal).Select(x => x.Guid.Value).ToArray() }; Roles.AddOrUpdate(roleModel); } }