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

时间:2014-02-28 17:12:34

标签: c# dynamics-crm-2011 workflow-foundation

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

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

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

以下是活动定义的样子:

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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

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

可以提供帮助的内容:_Context.InitiatingUserId 除了呼叫用户

之外,您必须在插件注册中注册您的插件

答案 2 :(得分:2)

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

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

您希望使用此凭据做什么?