【问题标题】:Assign user to group, Azure AD Graph Api将用户分配给组,Azure AD Graph Api
【发布时间】:2017-10-06 08:22:35
【问题描述】:

我正在开发 Azure B2C 单点登录。我正在使用:

Microsoft.Azure.ActiveDirectory.GraphClient;

我想创建一个函数来将用户分配到一个组,但它不起作用:

var user = this.aadClient.Users.Where(u => u.SignInNames.Any(n => n.Value == "sss@sss.com"))
                                    .ExecuteAsync().Result.CurrentPage.FirstOrDefault() as User;

var group = this.aadClient.Groups.Where(x => x.DisplayName.Equals(role, StringComparison.OrdinalIgnoreCase))
                                        .Expand(g => g.Members).ExecuteAsync().Result.CurrentPage.FirstOrDefault() as Group;

group.Members.Add(user);
await group.UpdateAsync();

用户和组都是正确的。 但是我在 await group.UpdateAsync() 上遇到了这个异常:

上下文已经跟踪了关系。

我已尝试更新上下文:

await this.aadClient.Context.SaveChangesAsync();

但我得到了同样的例外。

我的代码中的问题在哪里?任何提示都可能会有所帮助。谢谢!

【问题讨论】:

  • 我不知道 objectId,我正在处理组的显示名称。
  • 这个案例可能对你有帮助:stackoverflow.com/questions/44115248/…
  • 我试过了,群里不存在引用。它对我不起作用。

标签: c# azure active-directory azure-ad-graph-api


【解决方案1】:

这段代码对我有用:

var group = this.aadClient.Groups.Where(x => x.DisplayName.Equals(role, StringComparison.OrdinalIgnoreCase))
                                        .ExecuteAsync().Result.CurrentPage.FirstOrDefault() as Group;

group.Members.Add(user);
await this.aadClient.Context.SaveChangesAsync();

我猜问题是用户已经拥有这个角色。

【讨论】:

    猜你喜欢
    • 2020-12-27
    • 1970-01-01
    • 1970-01-01
    • 2017-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多