示例#1
0
        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);
                }
            }
        }
示例#2
0
        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);
            }
        }
示例#3
0
        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);
            }
        }