c# - 如何从 identityref 获取电子邮件
问题描述
我看过UserHttpClient
,ProfileHttpClient
和GraphHttpClient
.
IdentityRef
当我从工作项(“AssignedTo”字段)中获取电子邮件地址时,我无法弄清楚如何从其中的任何一个中检索电子邮件地址。
之前我假设该uniquename
字段始终是电子邮件地址,但对于本地安装似乎不是这样?
解决方案
我终于弄明白了。
identityRef
包含一个名为的字段,该字段Descriptor
对应于ProfileHttpClient
(Rest api)中的“用户描述符”。
因此,要获得电子邮件,必须执行以下操作:
public static Task<string> GetEmailAddress(this VssConnection connection, SubjectDescriptor descriptor)
{
var client = connection.GetClient<GraphHttpClient>();
var user = await client.GetUserAsync(descriptor.ToString());
return user?.MailAddress;
}
// .. and in your code (where assignedTo is an IdentityRef).
var email = await connection.GetEmailAddress(assignedTo.Descriptor);
更新
这在 Azure DevOps Server 上不起作用,因为 Graph 在其上不可用。所以问题仍然存在。
(将此作为云版本的答案)
推荐阅读
- php - PHP MYSQLI Prepared 语句难以更新
- reactjs - React Form 没有发送到 Firebase 数据库
- azure-data-factory - ADF 字符串变量的上限是多少?
- javascript - 在 javascript 中使用 null 属性获取错误
- c++ - 为什么 clEnqueueNDRangeKernel 会因浮点异常而崩溃?
- python - “NoneType”和“int”的实例之间不支持提款功能“<”
- node.js - 为什么我在尝试连接到 mongo atlas 时出错(错误:querySrv EREFUSED _mongodb._tcp.cluster0.hovp9.mongodb.net)
- android - 如何检查 Andriod 上是否有其他应用程序在后台运行
- python - 在单个 Timestamp 实例上定义 freq 属性有什么意义?
- python - 如何在 mongoengine/pymongo 中设置固定字段