繁体   English   中英

创建一个用户,传入用户对象的 json (Microsoft Graph)

[英]Create a user passing in a json of user object (Microsoft Graph)

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

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

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

图调用的源链接可以在这里找到: 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);

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

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

在此处输入图片说明

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# 的代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM