将用户分配给组,Azure AD Graph Api

Assign user to group, Azure AD Graph Api

我正在处理 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():

上得到了这个异常

The relationship is already tracked by the context.

我已尝试更新上下文:

await this.aadClient.Context.SaveChangesAsync();

但我遇到了同样的异常。

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

这段代码对我有用:

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();

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