Как сделать веб-API Dynamics 365 по умолчанию идентификатором владельца, как в SDK? - PullRequest
0 голосов
/ 07 января 2019

Когда я создаю сущность с использованием службы организации в Dynamics 365, если я не указываю владельца сущности, для OwnerID устанавливается идентификация пользователя, чьи учетные данные используются для аутентификации в службе организации.

Однако, когда я получаю доступ к веб-API, используя клиент, сгенерированный с помощью инструмента Microsoft.OData.Client , вызов SaveChangesAsync вызывает исключение, говоря, что для ownerid нельзя установить значение NULL.

Я проверяю подлинность, используя клиентские права с именем пользователя и паролем (я знаю, что это не рекомендуемая практика, но токен доступа принят, поэтому пока это подтверждение концепции).

Я не знаю владельца. Как настроить веб-API по умолчанию для этого значения так же, как в SDK?

1 Ответ

0 голосов
/ 08 января 2019

Вы можете явно попытаться выдать себя за пользователя - вам нужно знать его идентификатор пользователя.

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

  1. Предпочтение: выдавать себя за пользователя на основе его Azure Active Directory (AAD) идентификатор объекта путем передачи этого значения вместе с заголовком CallerObjectId.

  2. Legacy: выдать себя за пользователя, основываясь на его systemuserid, можно использовать MSCRMCallerID с соответствующим значением guid.

POST [Organization URI]/api/data/v9.0/accounts HTTP/1.1  
CallerObjectId: e39c5d16-675b-48d1-8e67-667427e9c084  
Accept: application/json  
Content-Type: application/json; charset=utf-8  
OData-MaxVersion: 4.0  
OData-Version: 4.0  

{"name":"Sample Account created using impersonation"}  

Вы также можете попытаться установить ownerid явно при вызове создания, опять же, вам нужно будет знать их идентификатор пользователя. Также проверьте, есть ли у ваших пользователей права на создание и чтение.

По умолчанию вызывающая сторона становится владельцем новой записи. Тем не мение, чтобы вызывающая сторона владела новой записью, она должна иметь Чтение привилегий для сущности. ... Кроме того, вы можете установить свойство ownerid для идентификатора другого пользователя.

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