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

Dynamics crm 2011 如何在CRM插件中获取当前用户记录?,dynamics-crm-2011,dynamics-crm,dynamics-crm-online,Dynamics Crm 2011,Dynamics Crm,Dynamics Crm Online,我正在开发一个插件。无论何时调用插件,我都需要获取当前用户信息?有没有办法检索这些信息?这些信息可以在PluginExecutionContext中找到。下面的代码来自插件必须实现的Execute方法 public void Execute(IServiceProvider serviceProvider) { IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typ

我正在开发一个插件。无论何时调用插件,我都需要获取当前用户信息?有没有办法检索这些信息?

这些信息可以在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;
}

仅供参考,上下文还有一个“UserId”属性,该属性可能与InitiatingUserId相同,也可能不同。如果插件步骤注册“在用户上下文中运行”字段的值为“调用用户”,则它们将是相同的。如果您在“在用户上下文中运行”字段中指定了用户,则UserId字段将包含您指定的用户ID,InitiatingUserId将是其操作触发插件的实际CRM用户。听起来您正在寻找InitiatingUserId。

以上答案是正确的。还请记住,如果您不想在用户上下文中运行插件,您还可以从inputenty中获取修改用户,该inputenty从任何更新的字段传递到插件中

在不在用户上下文中运行的场景中,您可以执行service.Retrieve调用以获取修改用户的完整记录