Я могу воспроизвести вашу проблему. Учетная запись myemailaddress@live.com
является Guest
в вашем арендаторе, перейдите к AAD на портале -> найдите учетную запись -> щелкните по ней и выберите Object ID
, затем используйте Object ID
в коде, он будет работать.
var user = await graphClient.Users["<Object ID>"].Request().GetAsync();
Или вы можете использовать filter
, чтобы получить пользователя, в вашем случае формат UserPrincipalName
для гостевого пользователя будет похож на myemailaddress_live.com#EXT#@tenantname.onmicrosoft.com
, при использовании фильтра мынужно URL закодировать его, тогда это будет myemailaddress_live.com%23EXT%23%40tenantname.onmicrosoft.com
, попробуйте код как показано ниже, он работает на моей стороне.
var user = await graphClient.Users.Request().Filter("UserPrincipalName eq 'myemailaddress_live.com%23EXT%23%40tenantname.onmicrosoft.com'").GetAsync();
Обновление :
Если выЕсли вы хотите получить пользователя через UserPrincipalName
, вы также можете использовать URL в кодировке, как показано ниже.
var user = await graphClient.Users["myemailaddress_live.com%23EXT%23%40tenantname.onmicrosoft.com"].Request().GetAsync();