【问题标题】:Filter user by using alias address - MS Graph使用别名地址过滤用户 - MS Graph
【发布时间】:2021-08-01 06:21:33
【问题描述】:
我们如何通过使用别名邮件地址而不是实际的用户主体名称来过滤用户。如下所示
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var user = await graphClient.Users
.Request()
.Filter("UserPrincipalName eq 'aaa@aaa.com'")
.GetAsync();
现在,当我使用别名地址时出现“未找到”错误。
感谢任何帮助。
【问题讨论】:
标签:
c#
azure
microsoft-graph-api
exchange-server
【解决方案1】:
UserPrincipalName 的一般格式是 alias@domain,其中域必须存在于租户的已验证域集合中。
在电子邮件地址填充为备用电子邮件时搜索用户:
otherMails 有一个用户的附加电子邮件地址列表;例如:["bob@contoso.com", "Robert@fabrikam.com"]。
.Filter($"otherMails/any(id:id eq 'user@example.com'")
当电子邮件地址填充为登录名时搜索用户:
.Filter($"identities/any(id:id/issuerAssignedId eq 'user@example.com' and id/issuer eq 'contoso.onmicrosoft.com')")
有关个人电子邮件地址的更多信息,请参阅here。
如果您指的别名地址是带有 SMTP 的地址,例如:["SMTP: bob@contoso.com", "smtp: bob@sales.contoso.com"]。您可以使用proxyAddresses,需要“smtp”。
https://graph.microsoft.com/v1.0/users?$filter=proxyAddresses/any(c:c eq 'smtp:aaa@aaa.com')
.Filter($"proxyAddresses/any(c:c eq 'smtp:aaa@aaa.com'")