0

我正在尝试通过调用 microsoft graph 并将 json 字符串(看起来像用户对象的字符串)传递到 httprequest 的 req.body 来创建用户。我目前正在遵循的步骤是:

  1. 调用microsoft graph获取用户的属性
  2. 将内容序列化为 json 字符串 (jsonString) 并在使用图形调用在 azure 活动目录中创建用户时将其作为 HTTPRequest 的 req.Body 传递

当我将内容传递到 req.Body 时,由于必须填写必填字段(accountEnabled、displayName、onPremisesImmutableId、密码等),因此不会创建它,因为它没有指定必填字段(例如:在 jsonString 的内容中,密码设置为空。密码需要有一个值)。

图调用的源链接可在此处找到:https ://docs.microsoft.com/en-us/graph/api/user-post-users?view=graph-rest-1.0&tabs=http

有没有办法传入我的 jsonString 并在 req.Body 中指定一些用户属性?如果没有,是否有解决方法?

var createUser = await httpClient.PostAsync(link, "Token", jsonString);

4

1 回答 1

0

不能以任何方式检索 Azure AD 中任何用户的密码,这一点很重要。因此,您需要在代码中设置密码的值。

其他属性(displayName、MailNickname、UserPrincipalName等)可以直接设置,见:</p>

在此处输入图像描述

GraphServiceClient graphClient = new GraphServiceClient(authProvider);

User user = await graphClient.Users["{user-id}"].Request().GetAsync();

var newUser = new User
{
    AccountEnabled = true,
    DisplayName = user.DisplayName,
    MailNickname = user.MailNickname,
    UserPrincipalName = user.UserPrincipalName,
    PasswordProfile = new PasswordProfile
    {
        ForceChangePasswordNextSignIn = true,
        Password = "password-value"
    }
};

await graphClient.Users.Request().AddAsync(newUser);

我在链接中引用了带有 C# 的代码。

于 2020-11-02T07:10:31.107 回答