将用户分配给组,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();
我猜问题是用户已经拥有这个角色。
我正在处理 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();
我猜问题是用户已经拥有这个角色。