4

プラグインを開発しています。プラグインが呼び出されるたびに、現在のユーザー情報を取得する必要がありますか?それを取得する方法はありますか?

4

2 に答える 2

18

情報は PluginExecutionContext で利用できます。以下のコードは、プラグインが実装する必要がある Execute メソッドからのものです。

public void Execute(IServiceProvider serviceProvider)
{
    IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
        IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
    Guid userId = context.InitiatingUserId;
}

参考までに、コンテキストには、InitiatingUserId と同じ場合と異なる場合がある "UserId" プロパティもあります。プラグイン ステップ登録の [Run in Users's Context] フィールドの値が [Calling User] の場合、それらは同じになります。[ユーザーのコンテキストで実行] フィールドでユーザーを指定した場合、UserId フィールドには指定したユーザーのユーザー ID が含まれ、InitiatingUserId はアクションによってプラグインがトリガーされた実際の CRM ユーザーになります。InitiatingUserId を探しているようです。

于 2012-05-16T21:54:59.747 に答える