Die Identität eines Benutzers annehmen
Manchmal benötigen Sie den Code in einem Plug-in, um ihn im Kontext eines anderen Benutzers auszuführen, z. B. um eine Operation in dessen Namen durchzuführen.
Es gibt zwei Möglichkeiten, Identitätswechsel in Plug-Ins anzuwenden: Bei der Registrierung oder der Ausführung.
Bei der Plug-In-Registrierung
Wenn Sie einen Plug-In-Schritt registrieren, können Sie ein Benutzerkonto angeben, das benutzt werden soll, wenn der Code ausgeführt wird, indem Sie von der Option Im Kontext des Benutzers ausführen auswählen. Standardmäßig ist diese auf die Nutzung von Aufrufender Benutzer festgelegt. Das ist das Benutzerkonto, durch das die Aktion initiiert wurde. Wenn diese Standardoption angewendet ist, wird die SdkMessageProcessingStep.ImpersonatingUserId auf null oder Empty festgelegt.
Weitere Informationen: Plug-In-Schritt registrieren.
Während der Plug-In-Ausführung
Sie können die Einstellung überschrieben, die bei der Registrierung zur Laufzeit angegeben wurde, nämlich durch Festlegen vom IOrganizationServiceFactory.CreateOrganizationService(Nullable<Guid>) userId
-Parameter.
Dies wird in der Regel festgelegt auf den IExecutionContext.UserId -Werte, wodurch das Benutzerkonto angewendet wird, das durch die Plug-In-Schrittregistrierung definiert wurde.
(IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
Wenn Sie die Schrittregistrierung überschreiben möchten, können Sie den Wert übergeben von IExecutionContext.InitiatingUserId um einen Service zu haben, bei dem das Benutzerkonto verwendet wird, durch das die Aktion initiiert wurde, die die Ausführung des Plug-Ins verursacht hat.
Sie können auch die SystemUser.SystemUserId von einem gültigen Benutzerkonto bereitstellen. Dies funktioniert, solange dieser Benutzer über die erforderlichen Berechtigungen verfügt, um die Vorgänge im Plug-In auszuführen.
Siehe auch
Plug-Ins
Schreiben eines Plug-Ins
Hinweis
Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)
Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).