c# - 创建传入用户对象的用户 (Microsoft Graph)
问题描述
我正在尝试使用以下链接使用 microsoft graph 调用创建用户:https ://docs.microsoft.com/en-us/graph/api/user-post-users?view=graph-rest-1.0&tabs=夏普
但是,有没有办法通过在azure函数中传入用户对象或用户对象的json表示形式作为参数来创建用户如下图所示?
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "user/settings")] HttpRequest req, ILogger 记录器, 用户用户)
此外,有没有办法读取整个 req.Body (w/附加属性)并创建一个用户,而不是只应用所需的参数(如下所示)?每个用户都有不同的属性
{
AccountEnabled = true,
DisplayName = "displayName-value",
MailNickname = "mailNickname-value",
UserPrincipalName = "upn-value@tenant-value.onmicrosoft.com",
PasswordProfile = new PasswordProfile
{
ForceChangePasswordNextSignIn = true,
Password = "password-value"
}
};
await graphClient.Users
.Request()
.AddAsync(user);
解决方案
对于您的第一个问题,我认为我们不能传递一个用户对象来直接创建用户。但是我们可以将所有属性传递给函数来创建它。正如你提到的第二个问题,如果每个用户都有不同的属性,我们创建用户并不容易。因此,我们可以将所有属性作为 json 传递给函数,然后从 json 中读取 jsonreq
并将这些属性连接为 json 字符串。之后,不要使用 graph sdk 创建用户。像下面的代码一样自己用graph api做一个post请求:
string str = "{\"displayName":\"xxxx\",\"mailNickname\":\"xxxx\"}";
var content = new StringContent(str, Encoding.UTF8, "application/json");
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "your token");
var response = client.PostAsync("https://graph.microsoft.com/v1.0/users", content).Result;
推荐阅读
- r - R:如何从 gbm 包中找到 C/C++ 源代码?
- android - 位图截图问题
- websocket - 使用 websocket 的 ngrok 不起作用,找不到 Sec-WebSocket-Accept
- pandas - 熊猫数据透视表 - 有条件的平均值
- reactjs - 在数组 React-Redux 中存储状态
- javascript - 使用 thymeleaf 在 javascript 中渲染未转义的字符
- r - 自定义标题并将文本添加到构面?
- python - 安装 Geopandas 的问题
- sas - 如何在 SAS 学生中使用 PROC REG 的结果
- c# - 如何使用 ViewModel 添加 XAML 属性值?