Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Parfois, vous avez besoin du code dans un plug-in pour s’exécuter dans le contexte d’un autre utilisateur, par exemple pour effectuer une opération en son nom.
Il existe deux manières d’appliquer l’emprunt d’identité aux plug-ins : à l’enregistrement ou pendant l’exécution.
Lors de l’inscription du plug-in
Lorsque vous inscrivez une étape de plug-in, vous pouvez spécifier un compte d’utilisateur à utiliser lorsque le code est exécuté en choisissant l’option Exécuter dans le contexte de l’utilisateur . Par défaut, il est défini pour utiliser l’utilisateur appelant, qui est le compte d’utilisateur qui a lancé l’action. Lorsque cette option par défaut est appliquée, le SdkMessageProcessingStep.ImpersonatingUserId est défini sur Null ou Empty.
Plus d’informations : Étape d'enregistrement du plugin
Pendant l’exécution du plug-in
Vous pouvez remplacer le paramètre spécifié lors de l’inscription au moment de l’exécution en définissant le IOrganizationServiceFactoryparamètre .CreateOrganizationService(Nullable<Guid>)userId
Il s'agit généralement de la valeur IExecutionContext.UserId Elle applique le compte d'utilisateur défini lors de l'inscription de l'étape du plug-in.
(IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
Si vous souhaitez outrepasser l'enregistrement d'une étape, vous pouvez transmettre la valeur du IExecutionContext.InitiatingUserId pour obtenir un service qui utilisera le compte utilisateur ayant initié l'action ayant provoqué l'exécution du plug-in.
Vous pouvez également fournir SystemUser.SystemUserId à partir de n’importe quel compte d’utilisateur valide. Cela fonctionnera tant que l’utilisateur dispose des autorisations nécessaires pour effectuer les opérations dans le plug-in.