Расширения Azure AD GraphServiceClient не работают - PullRequest
0 голосов
/ 07 декабря 2018

У меня следующий запрос для получения пользователя, использующего GraphServiceClient с .net core 2.

 user = await _graphClient.Users[principalName].Request()
                    .Expand("Extensions")
                    .GetAsync();

При запуске я получаю следующую ошибку

Microsoft.Graph.ServiceException: Code: generalException Сообщение: неожиданное исключение возвращено из службы.

Это происходит только тогда, когда я добавил OpenTypeExtension для пользователя, используя следующий код!

extension = new OpenTypeExtension
                {
                    ExtensionName = AzureADExtensions.UserConstants.ExtensionName,
                    AdditionalData = new Dictionary<string, object>
                    {
                        {"OtherEmail", externalUser.Email},
                        {"OtherRole" , externalUser.Roles.FirstOrDefault()}
                    }
                };

                await _graphClient.Users[user.Id].Extensions.Request()
                    .AddAsync(extension);

Я начинаю по-настоящему уставать от Azure AD.

Я не могу добавить какие-либо метаданные своим пользователям.Это происходит только потому, что otherEmails не работает с GraphServiceClient, а при попытке использовать любые другие разумные поля выдает следующую ошибку:

Арендатор не имеет лицензии SPO при обновлении пользователя

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 10 декабря 2018

Так что для всех, кто сталкивался с этим, похоже, что это ошибка в клиенте службы.

Сбой приведенного ниже кода

  user = await _graphClient
                    .Users[userId]
                    .Request()
                    .Expand("Extensions")
                    .GetAsync();

Но этот код работает, простозапрашивая расширения в отдельном звонке!

 user = await _graphClient
                    .Users[userId]
                    .Request()
                    .GetAsync();

                var extensions = await _graphClient.Users[user.Id].Extensions.Request().GetAsync();
                user.Extensions = extensions;

Надеюсь, что это сэкономит кому-то время, которое я потерял на этом!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...