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

C# 从WWF自定义活动中获取当前用户网络凭据,c#,dynamics-crm-2011,workflow-foundation,C#,Dynamics Crm 2011,Workflow Foundation,我正在为MS CRM 2011开发自定义工作流步骤 我想知道是否可以检索表示运行此工作流的当前用户的NetworkCredentials对象 此信息是否存在于CodeActivityContext对象中 以下是活动定义的外观: public class CustomActivity : CodeActivity { protected override void Execute(CodeActivityContext context) { ... } } 没有。

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

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

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

以下是活动定义的外观:

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

没有。我相信你不能那样做。所有异步作业都是在用于异步服务登录的帐户的安全上下文中完成的。

如果使用以下行,您可以找到运行此工作流的用户:

protected override void Execute(CodeActivityContext context)
{
    IWorkflowContext _Context = context.GetExtension<IWorkflowContext>();
    IOrganizationServiceFactory _IOrganizationServiceFactory = context.GetExtension<IOrganizationServiceFactory>();
    IOrganizationService xrmService = _IOrganizationServiceFactory.CreateOrganizationService(_Context.InitiatingUserId);
}
protected override void Execute(CodeActivityContext上下文)
{
IWorkflowContext_Context=Context.GetExtension();
IOOrganizationServiceFactory\u IOOrganizationServiceFactory=context.GetExtension();
IOOrganizationService xrmService=\u IOOrganizationServiceFactory.CreateOrganizationService(\u Context.initialingUserId);
}
一些可能有用的东西:
\u Context.initialingUserID

除了调用用户,您还必须在插件注册中注册插件。我认为这取决于您使用的工作流类型。例如,我使用了StateMachine类型,其中OnResumeBookmark方法中可以是send对象变量,您可以将任何结构作为与恢复工作流的用户的交互。恢复后,您可以设置一些工作流变量并根据需要使用它

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

您想如何处理此凭据