c# - Azure DevOps - 通过 Api 更新用户配置文件
问题描述
我正在尝试对一堆用户配置文件(显示名称、邮件等)执行批量更新,而不需要用户凭据,而是通过 Azure DevOps REST API 在 Azure Active Directory 和 DevOps 中拥有最高权限。由于 DevOps 与 AAD 不同步。
看起来用户的 Update 方法只能将用户映射到新的身份。
这是我到目前为止所尝试的:
private Task<HttpResponseMessage> PatchVstsUser(vssps.dev.azure.com.VstsUser user)
{
var patchUser = new
{
displayName = user.Name,
mailAddress = user.Mail,
originId = user.AadId
};
return _devOpsGraphApi.PatchAsync($"users/{user.GraphDescriptor}?api-version=5.1-preview.1", patchUser);
}
带有 200 响应代码但实际显示名称的 API 响应未更新。
如何使用 Azure DevOps Rest API 更新例如用户的显示名称?
解决方案
从网络选项卡中,我能够在 Azure devops 中获取更新用户的 api。
这是请求:
Request URL: https://####.###.azure.com/_apis/User/User
Request Method: PATCH
Status Code: 200
Remote Address: ##.###.#.###:###
Referrer Policy: no-referrer-when-downgrade
同样,您可以为您的组织获取它。
请注意,它不是更新用户的推荐方式。假设您的 azure devops 帐户已标记到 Azure Active Directory,因此您应该能够使用以下 url 使用图形 API 来更新用户配置文件。
PATCH /users/{id | userPrincipalName}
https://docs.microsoft.com/en-us/graph/api/user-update?view=graph-rest-1.0&tabs=cs
希望能帮助到你。
推荐阅读
- pytorch - 具有多个学习率的循环学习率
- gradle - 我没有代理,但 Gradle 说“连接到 127.0.0.1:8888 [/127.0.0.1] 失败”,即使在删除 ~/.gradle 之后也是如此
- node.js - 猫鼬错误对象在邮递员或 console.log() 中不显示名称
- python - 使用 xgboost 进行二进制分类,得到 10000x2 yhat
- javascript - 如何通过 Angular 在 JSON 文件中使用变量?
- c# - 通过 EF Core 连接到 ASP.NET Core 应用程序中的 SQL Server 时,管道的另一端没有进程
- typescript - ESlint 抱怨无用的构造函数
- spring-boot - 带有 kotlin 的 Spring Data Redis 在 2.3.2.RELEASE 版本中中断
- zsh - 将 URL 解析为命令
- c# - 努力为 System.IO.Ports.SerialPort SerialDataReceivedEventHandler 注册事件处理程序