Клиенту службы Microsoft Graph не удается ИСПРАВИТЬ пользовательские атрибуты безопасностиC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Клиенту службы Microsoft Graph не удается ИСПРАВИТЬ пользовательские атрибуты безопасности

Сообщение Anonymous »

Согласно официальной документации Microsoft, можно присвоить значения настраиваемых атрибутов безопасности, используя следующий код:

Код: Выделить всё

var requestBody = new User
{
CustomSecurityAttributes = new CustomSecurityAttributeValue
{
AdditionalData = new Dictionary
{
{
"Engineering" , new
{
OdataType = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
ProjectDate = "2022-10-01",
}
},
},
},
};

var result = await graphClient.Users["{user-id}"].PatchAsync(requestBody);
Очевидно, это эквивалент C# следующего запроса HTTP PATCH:

Код: Выделить всё

PATCH https://graph.microsoft.com/v1.0/users/{id}
Content-type: application/json

{
"customSecurityAttributes":
{
"Engineering":
{
"@odata.type":"#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
"ProjectDate":"2022-10-01"
}
}
}
Хотя я успешно использовал Graph Explorer и без происшествий выполнил запрос HTTP PATCH для пользовательских атрибутов безопасности, мой код C# не работает. Вместо этого клиент выдает следующую ошибку:

Код: Выделить всё

Microsoft.Graph.Beta.Models.ODataErrors.ODataError: Invalid property 'SalesforceAccountId'.
at Microsoft.Kiota.Http.HttpClientLibrary.HttpClientRequestAdapter.ThrowIfFailedResponse(HttpResponseMessage response, Dictionary`2 errorMapping, Activity activityForAttributes, CancellationToken cancellationToken)
at Microsoft.Kiota.Http.HttpClientLibrary.HttpClientRequestAdapter.SendAsync[ModelType](RequestInformation requestInfo, ParsableFactory`1 factory, Dictionary`2 errorMapping, CancellationToken cancellationToken)
at Microsoft.Kiota.Http.HttpClientLibrary.HttpClientRequestAdapter.SendAsync[ModelType](RequestInformation requestInfo, ParsableFactory`1 factory, Dictionary`2 errorMapping, CancellationToken cancellationToken)
at Microsoft.Graph.Beta.Users.Item.UserItemRequestBuilder.PatchAsync(User body, Action`1 requestConfiguration, CancellationToken cancellationToken)
at PwsPortal.App.Services.MsGraph.GraphService.AssignAccountIdToUserAsync(String userId, String accountId) in C:\Users\George\source\repos\PwsPortal2\PwsPortal\App\Services\MsGraph\GraphService.cs:line 90
at PwsPortal.Controllers.SalesforceController.AddSecurityAttributeToUserAsync() in C:\Users\George\source\repos\PwsPortal2\PwsPortal\Controllers\SalesforceController.cs:line 105
at lambda_method77(Closure, Object)
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfActionResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context)

*** Headers omitted ***

Однако, как видите, мой код практически идентичен примеру Microsoft — метод тот же, только набор, имя и значение отличаются:
р>

Код: Выделить всё

var requestBody = new User
{
CustomSecurityAttributes = new CustomSecurityAttributeValue
{
AdditionalData = new Dictionary
{
{
"SalesforceAccountId"  , new
{
ODataType = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
Id = accountId,
}
},
},
},
};
await _graphServiceClient.Users[userId].PatchAsync(requestBody);
Мой вопрос: что происходит и как это можно решить? Мне нужно программно добавить значения пользовательских атрибутов безопасности, и, очевидно, клиент службы графов в этом случае ведет себя не так, как предполагалось. Что я делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/784 ... attributes
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Возникло несколько проблем после обновления Microsoft.Graph и Microsoft.Graph.Core – ищем замену этих фрагментов кода.
    Anonymous » » в форуме C#
    0 Ответы
    43 Просмотры
    Последнее сообщение Anonymous
  • С# Пытаюсь использовать MS Graph SDK с Microsoft.Graph.Models.Json
    Anonymous » » в форуме C#
    0 Ответы
    74 Просмотры
    Последнее сообщение Anonymous
  • Тип «ErrorDetails» отсутствует в Microsoft.Graph/Graph.Core после обновления.
    Anonymous » » в форуме C#
    0 Ответы
    65 Просмотры
    Последнее сообщение Anonymous
  • Версия C# вызова API Graph — https://graph.microsoft.com/v1.0/groups/{GroupId}/sites/root?$select=webUrl
    Anonymous » » в форуме C#
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous
  • Версия C# вызова API Graph — https://graph.microsoft.com/v1.0/groups/{GroupId}/sites/root?$select=webUrl
    Anonymous » » в форуме C#
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»