dan*_*dan 3 azure-ad-b2c microsoft-graph-api
我能够很好地创建和获取用户:
// This works!
var graphServiceClient = new GraphServiceClient(
$"https://graph.microsoft.com/beta",
AuthenticationProvider);
var user = await graphClient.Users[userId].Request().GetAsync();
if (user.AdditionalData == null)
user.AdditionalData = new Dictionary<string, object>();
user.AdditionalData[$"extension_xxxxxxx_Apps] = "TestValue";
// this does not work!
result = await graphClient.Users[user.Id].Request().UpdateAsync(msGraphUser);
Run Code Online (Sandbox Code Playgroud)
对于 xxxxxxx,我尝试了租户中 b2c-extensions-app 中的客户端 ID 和对象 ID。
例外
Microsoft.Graph.ServiceException:'代码:Request_BadRequest 消息:以下扩展属性不可用:extension_xxxxxxx_Apps。
如何从 GraphServiceClient 设置自定义属性?
尝试创建一个“新”用户而不是获取现有用户。当您调用 时UpdateAsync,B2C 只会设置您提供的属性(不会用 覆盖其他属性null)。这可能有帮助,也可能没有帮助,但问题是,我们正在做与上面相同的事情,除了“新”用户,而且它对我们有用。
User b2cUser = await this.GetOurUser(userId);
var additionalData = new Dictionary<string, object>();
additionalData["extension_id-of-extensions-app-here_Foo"] = "Ice Cream Cone";
var updatedB2cUser = new User
{
AdditionalData = additionalData
};
await this.GraphServiceClient.Users[b2cUser.Id].Request().UpdateAsync(updatedB2cUser);
Run Code Online (Sandbox Code Playgroud)
在实践中,我们包括额外的道具,例如Identities,因为我们使用 B2C 作为身份提供者...所以上面是我们的 B2C 包装器中的一些精简代码,仅显示“自定义属性”部分。
更新 实际上,您可能只需要从扩展应用程序 ID 中删除连字符,然后仔细检查您正在使用哪一个。
| 归档时间: |
|
| 查看次数: |
1765 次 |
| 最近记录: |