Active directory Microsoft Graph GetById支持查询参数($select、$filter),或在GetMemberGroups中包含其他属性

Active directory Microsoft Graph GetById支持查询参数($select、$filter),或在GetMemberGroups中包含其他属性,active-directory,azure-active-directory,microsoft-graph-api,Active Directory,Azure Active Directory,Microsoft Graph Api,GetMemberGroups只返回组的“id”属性,因为没有办法包含其他附加属性(我猜这是因为它只搜索某种索引,而不是实际遍历层次结构中的所有节点,这在需要传递时是有意义的) 一旦我从GetMemberGroups获得了ID,DirectoryObjects.GetByIds就很方便了,但是这个会返回所有默认属性。如果我指定任何$filter,例如,如果我知道我不需要displayName中带有特定前缀的组,或者因为我知道我只需要某些属性而指定$select,那么这些查询参数中的任何一个都会被

GetMemberGroups只返回组的“id”属性,因为没有办法包含其他附加属性(我猜这是因为它只搜索某种索引,而不是实际遍历层次结构中的所有节点,这在需要传递时是有意义的)

一旦我从GetMemberGroups获得了ID,DirectoryObjects.GetByIds就很方便了,但是这个会返回所有默认属性。如果我指定任何$filter,例如,如果我知道我不需要displayName中带有特定前缀的组,或者因为我知道我只需要某些属性而指定$select,那么这些查询参数中的任何一个都会被忽略。没有抛出错误,只是被忽略,所有对象都返回所有参数

// this works (max 2046 results)
var groupIDs = await client.Users[userid].GetMemberGroups(false).Request().PostAsync()

// something like Expand or Include would be handy
// even if it is done separately in AD, at least we would save the roundtrip
client.Users[userid].GetMemberGroups(false).Request().Include("prop1,prop2").PostAsync()

// this works nicely with pagination, but both Select and Filter are ignored
var res = await client.DirectoryObjects.GetByIds(groupIDs.ToList(), new[] { "group" })
.Request().Select("id,displayName").Filter("startswith(displayName,'prefix')").PostAsync()
当您处理大型结果集()时,这种情况更有意义,并且不能将值缓存太长时间,在这种情况下,它可能会浪费更多的带宽

有没有其他方法可以达到类似的效果?或者任何关于是否有可能支持这一点的提示,路线图上是否有类似的内容?
也许@Dan Kershaw知道更多,但如果同时我错过了一个已经存在的解决方案,最好使用它。

这看起来像是一个新的功能请求-在Microsoft Graph中对函数或操作进行筛选和选择。我们今天没有这个。当前唯一可用的选项是获取完整设置,并执行客户端筛选/选择

请为这个新功能创建一个

希望这有帮助