如何在CRM插件中获取当前用户记录?

use*_*258 4 dynamics-crm dynamics-crm-2011 dynamics-crm-online

我正在开发一个插件.每当调用一个插件时,我需要获取当前的用户信息?有没有办法检索?

Jef*_*eff 16

该信息在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;
}
Run Code Online (Sandbox Code Playgroud)

仅供参考,上下文还具有"UserId"属性,该属性可能与InitiatingUserId相同或不同.如果您的插件步骤注册"在用户的上下文中运行"字段的值为"呼叫用户",那么它们将是相同的.如果您在"在用户的上下文中运行"字段中指定了用户,则UserId字段将包含您指定的人员的用户ID,InitiatingUserId将是其操作触发插件的实际CRM用户.听起来你正在寻找InitiatingUserId.