2017-01-11 5 views
1

Можно ли фильтровать пользователей на основе SignInNames. Я попытался запуститьЗапрос User.SignInNames с использованием Microsoft.Azure.ActiveDirectory.GraphClient на арендаторе B2C

Client.Users.Where(u => u.SignInNames.Any(x => x.Type == "emailAddress" && x.Value == email)).ExecuteSingleAsync() as User; 

где email является локальным учетной записью пользователя, чей Логин имя [email protected]{mytenant}.onmicrosoft.com

Но я просто получить

Microsoft.Data.OData.ODataErrorException: Обнаружен внутренний сервера ошибка. ---> System.Data.Services.Client.DataServiceQueryException: при обработке этого запроса произошла ошибка . ---> System.Data.Services.Client.DataServiceClientException: {"odata.error": {"code": "Service_InternalServerError", "message": {"lang": "en", "value": " Обнаружена ошибка . «}}}

Любая идея, что не так?


Кажется, что клиент не нравится, если у вас есть несколько операций в запросе, работает SignInNames.Any(x => x.Value == email) работает отлично.

+1

Да, запрос signInNames поддерживается только с использованием значения. Он будет искать все типы. Тип предназначен в основном для информационных целей. –

ответ

1

В настоящее время невозможно фильтровать на все, кроме значения SignInName.

Если это то, что вы хотели бы увидеть, вы можете запросить его у Graph API UserVoice forum.