ユーザーを偽装する

別のユーザーのコンテキストで実行するためのプラグインのコードが必要になる場合があります。たとえば、そのユーザーに代わって操作を実行するときです。

プラグインの偽装を適用する 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 分かかります。 個人データは収集されません (プライバシー ステートメント)。