我正在开发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();
但我得到同样的例外。
我的代码中的问题在哪里?任何提示都可能有所帮助。谢谢!
答案 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();
我想问题是用户已经有了这个角色。