Я пытаюсь найти пользователя по электронной почте для входа в наш Azure AD B2 C Арендатор, используя C#. NET SDK и фильтр, описанный в этот ответ , примерно так:
private async Task<User> GetB2CUserByEmail(string email)
{
IGraphServiceUsersCollectionPage collectionPage = await this.GraphServiceClient.Users
.Request()
.Filter($"signInNames/any(c:c/value eq '{email}')")
.Select(this.UserSelectValue)
.GetAsync();
if (collectionPage == null || collectionPage.Count == 0)
{
return null;
}
return collectionPage[0];
}
Я получаю сообщение об ошибке:
Microsoft.Graph.ServiceException : Code: BadRequest
Message: Filter not supported.
Где this.UserSelectValue
- список выбора свойств, например "id,givenName..."
. Я подтвердил, что это не проблема, потому что у нас есть похожий рабочий метод, который ищет пользователя по свойству расширения; единственное отличие - параметр .Filter()
.
Как я могу заставить эту работу работать? Спасибо.