Azure AD GraphServiceClient не может установить дополнительные данные для пользователя - PullRequest
0 голосов
/ 07 декабря 2018

Я использую GraphServiceClient с .Net Core 2. Я пытаюсь добавить AdditionalData своим Пользователям, используя следующий код

var updated = new User()
                {
                   AdditionalData = new Dictionary<string, object>
                    {
                        {"OtherEmail", otherEmail},
                        {"OtherRole", otherRole}
                    },
                };

                await _graphClient.Users[user.Id].Request().UpdateAsync(updated);

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

Microsoft.Graph.ServiceException: Код: Request_BadRequest Сообщение: одно или несколько указанных значений свойств недействительны.

Кто-нибудь знает, что я делаю неправильно?

Также, если кто-тоПодскажите, пожалуйста, как я могу просто сохранить некоторые свои метаданные для пользователя, это было бы очень полезно.Я также пытался использовать расширения, но у меня возникла эта проблема.

Расширения Azure AD GraphServiceClient не работают

1 Ответ

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

Так что я справился с этим с помощью OpenExtensions, это также вызвало у меня много проблем, которые можно увидеть здесь.

Расширения Azure AD GraphServiceClient не работают

Хитрость заключается в том, чтобы добавить такие расширения как

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);

, а затем получить их вот так.

user = await _graphClient
                    .Users[userId]
                    .Request()
                    .GetAsync();
// Note : you should be able to expand this on original request, but fails for me.
                var extensions = await _graphClient.Users[user.Id].Extensions.Request().GetAsync();
                user.Extensions = extensions;

Надеюсь, что это кому-нибудь поможет!

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