ユーザーを偽装する
別のユーザーのコンテキストで実行するためのプラグインのコードが必要になる場合があります。たとえば、そのユーザーに代わって操作を実行するときです。
プラグインの偽装を適用する 2 つの方法があります: 登録または実行。
プラグイン登録で
プラグイン ステップを登録する場合、ユーザーのコンテキストで実行オプションから選択して、コードの実行時に使用するユーザー アカウントを指定できます。 既定では、これは呼び出し元ユーザーを使用して設定され、これはアクションを開始したユーザー アカウントです。 このデフォルト オプションが適用される場合、SdkMessageProcessingStep.ImpersonatingUserId は null または Empty に設定されます。
詳細: プラグイン ステップの登録
プラグイン実行の間
IOrganizationServiceFactory.CreateOrganizationService(Nullable<Guid>) を設定することによって、実行時に、登録時に指定した設定を上書きできます userId
パラメーター。
これはに通常、IExecutionContext.UserId に設定されます プラグイン ステップ登録によって定義されたユーザー アカウントを適用する値。
(IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
ステップ登録を上書きする場合は、IExecutionContext.InitiatingUserId の値を渡すことができます プラグインが実行されたアクションを開始したユーザー アカウントを使用するサービスを所持すること。
さらに、任意の有効なユーザー アカウントから SystemUser.SystemUserId を提供することもできます。 これは、そのユーザーがプラグインで操作を実行するアクセス許可を持つそのユーザーである限り、機能します。
関連項目
注意
ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)
この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。