我正在为MS CRM 2011开发自定义工作流程步骤。
我想知道是否可以检索代表运行此工作流程的当前用户的NetworkCredentials
对象?
CodeActivityContext
对象中是否存在此信息?
以下是活动定义的样子:
public class CustomActivity : CodeActivity
{
protected override void Execute(CodeActivityContext context)
{
...
}
}
答案 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参数。
您希望使用此凭据做什么?