【问题标题】:Get current user network credentials from within WWF custom activity从 WWF 自定义活动中获取当前用户网络凭据
【发布时间】:2014-02-28 17:12:33
【问题描述】:

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

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

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

下面是 Activity 定义的样子:

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案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 除了调用用户之外,您还必须在插件注册中注册您的插件

      【讨论】:

        【解决方案3】:

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

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

        你想用这个凭据做什么?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-04-03
          • 2017-12-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多