Representação em plug-ins

 

Publicado: novembro de 2016

Aplicável a: Dynamics CRM 2015

A representação é usada para executar a lógica de negócios (código personalizado) em nome de um usuário do sistema do Microsoft Dynamics 365 para fornecer um recurso ou serviço desejado para esse usuário. Qualquer lógica de negócios executada em um plug-in, incluindo as chamadas de método do serviço Web e acesso a dados, é governada pelos privilégios de segurança do usuário representado.

Os plug-ins não executados pela área restrita ou pelo serviço assíncrono são executados na conta de segurança especificada na guia Identidade da caixa de diálogo Propriedades de CRMAppPool. A caixa de diálogo pode ser acessada clicando com o botão direito no pool de aplicativos CRMAppPool no Gerenciador de Serviços de Informações da Internet (IIS) e clicando no menu de atalho Propriedades. Por padrão, CRMAppPool usa a identidade da conta de Serviço de Rede, mas ele pode ser alterado por um administrador do sistema durante a instalação. Se a identidade de CRMAppPool for alterada para uma conta do sistema diferente do Serviço de Rede, a nova conta de identidade deve ser adicionada ao grupo PrivUserGroup no Active Directory.Para obter mais informações:TechNet: Alterar uma conta de serviço do Microsoft Dynamics CRM ou identidade AppPool para obter instruções detalhadas.

Os dois métodos que podem ser empregados para representar um usuário são discutidos abaixo.

Representação durante o registro de plug-in

Um dos métodos para representar um usuário do sistema em um plug-in é especificando o usuário representado durante o registro de plug-in. Ao registrar um plug-in de forma programática, se o atributo SdkMessageProcessingStep.ImpersonatingUserId estiver definido para um usuário específico do sistema do Microsoft Dynamics 365, as chamadas do serviço Web feitas pelo plug-in são executadas em nome do usuário representado. Se ImpersonatingUserId estiver definido para um valor null ou Guid.Empty durante o registro de plug-in, o usuário autor da chamada/conectado ou o usuário padrão do “sistema” será o usuário representado.

Seja o usuário autor da chamada/conectado ou o usuário do “sistema” usado ou não para a representação, isso não depende da solicitação que estiver sendo processada pelo pipeline e está além do escopo da documentação do SDK. Para obter mais informações sobre o usuário do “sistema”, consulte o próximo tópico.

Observação

Ao registrar um plug-in usando a ferramenta de registro de plug-ins de exemplo fornecida no download do SDK, os métodos de serviço invocados pelo plug-in são executados na conta do usuário autor da chamada/conectado por padrão, a menos que você selecione um usuário diferente no menu suspenso Executar no contexto do usuário. Para obter mais informações sobre o código de exemplo da ferramenta, consulte o código da ferramenta na pasta SDK\Tools\PluginRegistration do pacote do SDK.Baixe o pacote do SDK do Microsoft Dynamics CRM.

Representação durante a execução de plug-in

A representação definida durante o registro de plug-in pode ser alterada em um plug-in no tempo de execução. Mesmo se a representação não tiver sido definida no registro do plug-in, o código do plug-in ainda poderá usar a representação. A discussão a seguir identifica as principais propriedades e métodos que desempenham um papel na representação ao fazer chamadas do método de serviço Web em um plug-in.

A plataforma transmite o ID do usuário representado para um plug-in no tempo de execução por meio da propriedade UserId. Esta propriedade pode ter um dos três valores diferentes mostrados na tabela abaixo.

UserId Valor

Condição

Como iniciar o usuário ou o usuário do ”sistema“

O atributo SdkMessageProcessingStep.ImpersonatingUserId é definido para null ou Guid.Empty durante o registro de plug-in.

Usuário representado

A propriedade ImpersonatingUserId é definida para um ID de usuário do sistema válido durante o registro de plug-in.

Usuário do "sistema"

O pipeline atual foi realizado pela plataforma, não em resposta direta a uma chamada do método de serviço.

A propriedade InitiatingUserId do contexto de execução contém o ID de usuário do sistema que chamou o método de serviço que fez com que o plug-in fosse executado.

Importante

Para os plug-ins que são executados offline, todas as entidades criadas pelo plug-in pertencem ao usuário conectado. A representação em plug-ins não tem suporte no modo offline.

Confira Também

Desenvolvimento de plug-in
Registrar e implantar plug-ins
Compreender o contexto de dados passado para um plug-in
Representar outro usuário

© 2017 Microsoft. Todos os direitos reservados. Direitos autorais