Representar outro usuário usando API da Web
Publicado: janeiro de 2017
Aplicável a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Existem situações em que o código precisará executar operações em nome de outro usuário. Se a conta do sistema que executa o código tiver os privilégios necessários, você poderá executar operações em nome de outros usuários.
Neste tópico
Requisitos de representação
Como personificar um usuário
Determine o usuário real
Requisitos de representação
A representação é usada para executar a lógica de negócios (código) em nome de outro usuário do Microsoft Dynamics 365 para fornecer um recurso ou serviço desejado e usar o direito adequado e a segurança baseada em objeto dessa pessoa. Isso é necessário porque os serviços Web do Microsoft Dynamics 365 podem ser chamados por vários clientes e serviços em nome de um usuário do Dynamics 365, por exemplo, em um fluxo de trabalho ou solução ISV personalizada. A representação envolve duas contas de usuário diferentes: uma conta de usuário (A) é usada para executar o código para realizar uma tarefa em nome de outro usuário (B).
A conta do usuário (A) precisa do privilégio prvActOnBehalfOfAnotherUser, que está incluído no direito de acesso do Delegado. O conjunto de privilégios real que é usado para modificar dados é a interseção de privilégios que a função de usuário Delegado possui com esse usuário que está sendo representado. Em outras palavras, o usuário (A) pode fazer algo se e apenas se o usuário (A) e o usuário representado (B) tiver o privilégio necessário para a ação.
Como personificar um usuário
Para representar um usuário, adicione um título da solicitação chamado MSCRMCallerID com um valor de GUID igual ao usuário representado systemuserid antes de enviar a solicitação para o serviço Web. Neste exemplo, uma nova entidade de conta é criada em nome do usuário com systemuserid 00000000-0000-0000-000000000002.
Solicitação
POST cc_WebAPI_ServiceURI/accounts HTTP/1.1 MSCRMCallerID: 00000000-0000-0000-000000000002 Accept: application/json Content-Type: application/json; charset=utf-8 OData-MaxVersion: 4.0 OData-Version: 4.0 {"name":"Sample Account created using impersonation"}
Resposta
HTTP/1.1 204 No Content OData-Version: 4.0 OData-EntityId: cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-000000000003)
Determine o usuário real
Quando uma operação como a criação de uma entidade é executada usando a representação, o usuário que executou realmente a operação pode ser encontrado consultando o registro que inclui a propriedade única avaliada de navegação de createdonbehalfby. Uma propriedade única avaliada de navegação modifiedonbehalfby correspondente está disponível para operações que atualizam a entidade.
Solicitação
GET cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-000000000003)?$select=name&$expand=createdby($select=fullname),createdonbehalfby($select=fullname),owninguser($select=fullname) HTTP/1.1 Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Resposta
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal ETag: W/"506868" { "@odata.context": "cc_WebAPI_ServiceURI/$metadata#accounts(name,createdby,createdonbehalfby,owninguser,createdby(fullname),createdonbehalfby(fullname),owninguser(fullname))/$entity", "@odata.etag": "W/\"506868\"", "name": "Sample Account created using impersonation", "accountid": "00000000-0000-0000-000000000003", "createdby": { "@odata.etag": "W/\"506834\"", "fullname": "Impersonated User", "systemuserid": "00000000-0000-0000-000000000002", "ownerid": "00000000-0000-0000-000000000002" }, "createdonbehalfby": { "@odata.etag": "W/\"320678\"", "fullname": "Actual User", "systemuserid": "00000000-0000-0000-000000000001", "ownerid": "00000000-0000-0000-000000000001" }, "owninguser": { "@odata.etag": "W/\"506834\"", "fullname": "Impersonated User", "systemuserid": "00000000-0000-0000-000000000002", "ownerid": "00000000-0000-0000-000000000002" } }
Confira Também
Executar operações usando A API
Compor solicitações de HTTP e lidar com erros
Consultar dados usando a API da Web
Criar uma entidade usando a API da Web
Recuperar uma entidade usando a API Web
Atualizar e excluir entidades que usam a API Web
Associar e desassociar entidades usando a API Web
Usar funções da API Web
Use ações API da Web
Executar operações em lote usando a API da WEB
Executar operações condicionais usando A API
Microsoft Dynamics 365
© 2017 Microsoft. Todos os direitos reservados. Direitos autorais