Delen via


Imitatie in invoegtoepassingen

 

Gepubliceerd: januari 2017

Is van toepassing op: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Imitatie wordt gebruikt om bedrijfslogica (aangepaste code) uit te voeren namens een Microsoft Dynamics 365-systeemgebruiker om een gewenste functie of service voor die gebruiker te bieden. Alle bedrijfslogica die wordt uitgevoerd in een invoegtoepassing, inclusief methodenaanroepen en gegevenstoegang voor de webservice, wordt bepaald door de bevoegdheden van de geïmiteerde gebruiker.

Invoegtoepassingen die niet via de sandbox of asynchrone service worden uitgevoerd, worden uitgevoerd onder de beveiligingsaccount die is opgegeven op het tabblad Identiteit van het dialoogvenster CRMAppPool-eigenschappen. Het dialoogvenster kan worden geopend door met de rechtermuisknop op de CRMAppPool-groep van toepassingen in Internet Information Services (IIS) Manager te klikken en vervolgens op Eigenschappen in het snelmenu te klikken. Standaard gebruikt CRMAppPool de identiteit van het Netwerkserviceaccount, maar dit kan tijdens de installatie worden gewijzigd door een systeembeheerder. Als de identiteit CRMAppPool wordt gewijzigd in een andere systeemaccount dan Netwerkservice, moet de nieuwe identiteitaccount worden toegevoegd aan de groep PrivUserGroup in Active Directory.Meer informatie:TechNet: Change a Microsoft Dynamics CRM service account or AppPool identity voor meer gedetailleerde instructies.

De twee methoden die kunnen worden gebruikt om een gebruiker te imiteren worden hieronder beschreven.

Imitatie tijdens registratie van een invoegtoepassing

Eén manier om een systeemgebruiker in een invoegtoepassing te imiteren is door de geïmiteerde gebruiker op te geven tijdens de registratie van de invoegtoepassing. Bij het via programmeren registreren van een invoegtoepassing, worden, als het kenmerk SdkMessageProcessingStep.ImpersonatingUserId is ingesteld op een specifieke Microsoft Dynamics 365-systeemgebruiker, aanroepen van de webservice uitgevoerd namens de geïmiteerde gebruiker. Als ImpersonatingUserId is ingesteld op een waarde van null of Guid.Empty tijdens de registratie van een invoegtoepassing, is de aanroepende/aangemelde gebruiker of de standaard "systeem"-gebruiker de geïmiteerde gebruiker.

Of de aanroepende/aangemelde gebruiker of de standaard "systeem"-gebruiker wordt gebruikt voor imitatie is afhankelijk van de aanvraag die wordt verwerkt door de pipeline. Dit wordt niet behandeld in de SDK-documentatie. Voor meer informatie over de "systeem"-gebruiker, raadpleegt u het volgende onderwerp.

Notitie

Als u een invoegtoepassing registreert met het voorbeeldprogramma voor registratie van invoegtoepassingen dat wordt meegeleverd in de SDK-download, wordt servicemethoden die worden aangeroepen door de invoegtoepassing standaar uitgevoerd onder het account van de aanroepende of aangemelde gebruiker, tenzij u een andere gebruiker selecteert in het vervolgkeuzemenu Uitvoeren in gebruikerscontext. Voor meer informatie over de voorbeeldcode voor het hulpprogramma raadpleegt u de hulpprogrammacode in de map SDK\Tools\PluginRegistration van het SDK-pakket.Download het Microsoft Dynamics CRM SDK-pakket.

Imitatie tijdens uitvoering van een invoegtoepassing

Imitatie die tijdens de registratie van een invoegtoepassing is gedefinieerd kan tijdens runtime worden veranderd in een invoegtoepassing. Zelfs als imitatie niet is gedefineerd bij registratie van de invoegtoepassing, kan de code van de invoegtoepassing nog steeds imitatie gebruiken. Hieronder worden de belangrijkste eigenschappen en methoden geïdentificeerd die een rol bij imitatie spelen bij het aanroepen van de webservicemethode in een invoegtoepassing.

Het platform geeft tijdens runtime de geïmiteerde gebruikers-id door aan een invoegtoepassing via de eigenschap UserId. Deze eigenschap kan een van drie verschillende waarden hebben, zoals aangegeven in de onderstaande tabel.

UserId Waarde

Voorwaarde

Initiërende gebruiker of "systeem"-gebruiker

Het kenmerk SdkMessageProcessingStep.ImpersonatingUserId wordt ingesteld op null of Guid.Empty bij registratie van de invoegtoepassing.

Geïmiteerde gebruiker

De eigenschap ImpersonatingUserId wordt ingesteld op een geldige systeemgebruiker-id bij registratie van de invoegtoepassing.

"systeem"-gebruiker

De huidige pipeline is uitgevoerd door het platform, niet als directe reactie op de aanroep van een servicemethode.

De eigenschap InitiatingUserId van de uitvoeringscontext bevat de id van de systeemgebruiker die de servicemethode heeft aangeroepen die er uiteindelijk toe leidde dat de invoegtoepassing werd uitgevoerd.

Belangrijk

Voor invoegtoepassingen die offline worden uitgevoerd, zijn eventuele entiteiten die worden gemaakt door de invoegtoepassing het eigendom van de aangemelde gebruiker. Imitatie in invoegtoepassingen wordt niet ondersteund in de offlinemodus.

Zie ook

Ontwikkeling van plug-ins
Plug-ins registreren en inzetten
Begrijp de gegevenscontext in een plug-in
Een andere gebruiker imiteren

Microsoft Dynamics 365

© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht