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

时间:2017-10-06 08:22:35

标签: c# azure active-directory 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()上得到了这个例外:

  

上下文已经跟踪了这种关系。

我试图更新上下文:

await this.aadClient.Context.SaveChangesAsync();

但我得到同样的例外。

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

1 个答案:

答案 0 :(得分:0)

此代码适用于我:

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

我想问题是用户已经有了这个角色。