从 WWF 自定义活动中获取当前用户网络凭据



我正在为 MS CRM 2011 开发自定义工作流程步骤。

我想知道是否可以检索NetworkCredentials代表运行此工作流的当前用户的对象?

此信息是否存在于CodeActivityContext对象中?

以下是活动定义的外观:

public class CustomActivity : CodeActivity
{
    protected override void Execute(CodeActivityContext context)
    {
    ...
    }
}

不。我相信你做不到这一点。所有异步作业都是在用于 AsyncService 登录的帐户的安全上下文中完成的。

如果

使用以下行,您可以找到运行此工作流的人员:

protected override void Execute(CodeActivityContext context)
{
    IWorkflowContext _Context = context.GetExtension<IWorkflowContext>();
    IOrganizationServiceFactory _IOrganizationServiceFactory = context.GetExtension<IOrganizationServiceFactory>();
    IOrganizationService xrmService = _IOrganizationServiceFactory.CreateOrganizationService(_Context.InitiatingUserId);
}

可能有所帮助的东西:_Context.InitiatingUserId 并且除了调用用户之外,您还必须在插件注册中注册您的插件

我认为这取决于您使用的工作流程类型。例如,我使用了状态机类型,其中在OnResumeBookmark方法中可以发送对象变量,您可以在其中将任何结构作为与恢复工作流的用户的交互。恢复后,您可以设置一些工作流变量并根据需要使用它。

另一种方法是在创建新的工作流实例时使用给定类型的工作流参数。

您想用这个凭据做什么?

最新更新