Найти пользователя по адресу электронной почты с помощью клиентской библиотеки Active Directory - PullRequest
0 голосов
/ 29 мая 2018

Я нашел ссылку на пользователей GET по objectId и принципалу.

Ссылка: Объявление о клиентской библиотеке API API Azure AD Graph 2.0

У меня есть пример использования, например, перед созданием пользователя в AD я хочу проверить, является ли адрес электронной почты ужесуществуют там или нет.

Я получаю это исключение, когда пользователь уже существует:

{"odata.error":{"code":"Request_BadRequest","message":{"lang":"en","value":"Another object with the same value for property signInNames already exists."},"date":"2018-05-29T06:54:41","requestId":"9ac7e678-7426-4dfd-9aa5-89c24038b9e0","values":[{"item":"PropertyName","value":"signInNames"},{"item":"PropertyErrorCode","value":"ObjectConflict"}]}}

Итак, есть ли простой способ проверить наличие адреса электронной почты перед созданием пользователя?

Есть нижеисключение при попытке с ответом, опубликованным Мартином enter image description here

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Я попытался с запросом ниже, и он работает нормально.

Client.Users.Where(u => u.SignInNames.Any(x => x.Value == "YourEmail@yourdomain.com")).ExecuteSingleAsync();

Спасибо @Martin Brandl

0 голосов
/ 29 мая 2018

Вы можете выполнить запрос, чтобы проверить, существует ли пользователь с таким именем входа:

Client.Users.Where(u => u.SignInNames.Any(x => x.Type == "emailAddress" && x.Value == YourEmail@yourdomain.com)).ExecuteSingleAsync()

Если вы используете AAD B2C, вы должны пропустить проверку Типа для SignInNames.

...