【问题标题】:Load list of Users in two Azure Active Directory Groups using Graph API使用 Graph API 加载两个 Azure Active Directory 组中的用户列表
【发布时间】:2014-08-21 08:01:09
【问题描述】:

我对 Active Directory 和 Azure 非常陌生,这从我的问题中可能很明显。我使用MVC Directory Graph Sample 作为参考。我能够完成我正在尝试的大部分事情,但我遇到了问题:

我在 Azure Active Directory 中有一个组和用户层次结构,其中我有两个级别的组(例如,GroupA 包含 GroupB 和 GroupC,GroupD 包含 GroupE...)。理论上,用户可以属于这些组的任意组合(例如 GroupA、GroupD 和 GroupE)。

我将两个字符串传递给我的 MVC 项目控制器,其中每个字符串都是我的 Azure Active Directory 中组的 ID。我只想加载两个组中重叠的用户对象,即只加载两个组中的用户。

按照 MSDN 中的示例项目之一,我能够加载其中一个组中所有用户的列表,如下所示:

Group groupA = DirectoryService.groups.Where(it => (it.objectId == GroupAId)).SingleOrDefault();
DirectoryService.LoadProperty(groupA , "members");
List<User> usersListA = groupA.members.OfType<User>().ToList();

复制第二个列表,然后我可以将两者相交:

Group groupB = DirectoryService.groups.Where(it => (it.objectId == GroupBId)).SingleOrDefault();
DirectoryService.LoadProperty(groupB , "members");
List<User> usersListB = groupA.members.OfType<User>().ToList();

List<User> finalList = usersListA.Intersect(usersListB);

基本上,我正在完全加载两个列表...我的问题是 - 有没有更好的方法来做到这一点?

例如,在我从 GroupA 加载用户列表后,我是否可以过滤列表以仅包含属于 GroupB 的用户?大致如下:

//<Incorrect syntax>
List<User> finalList =  groupA.Where(user => user.memberOf("GroupB"));
//</Incorrect syntax>

【问题讨论】:

    标签: c# asp.net-mvc azure azure-active-directory


    【解决方案1】:

    不,如果您正在寻找的话,目前没有办法在服务器端执行此操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-20
      相关资源
      最近更新 更多