首页 > 解决方案 > WF4 WorkflowApplication - 自定义 SynchronizationContext 以模拟用户 (Thread.CurrentPrincipal)

问题描述

我正在使用 Workflow Foundation WF4,并且希望在运行 WorkflowApplication 实例时模拟或“运行为”用户。

要访问用户,我想使用 Thread.CurrentPrincipal

我正在尝试找到一种解决方案,通过该解决方案我可以模拟或配置用户以适应 WorkflowApplicaton 实例的范围/生命周期。对于在其中执行的所有活动,工作流应在提供的声明主体的安全上下文下运行。

在一个实例上使用的声明主体不应影响进程中的任何其他线程或任何其他 WorkflowApplication 实例 - 它应该被隔离。

我一直在调查 SynchronizationContext。WorkflowApplication 允许您使用 SynchronizationContext 的任何实现。我对在自定义实现中设置 Thread.CurrentPrincipal 的含义没有信心。它会通过活动层次结构流动/传播吗?可以将主体锁定到运行工作流的线程吗?

有人对自信地实现这些要求有什么想法吗?

标签: .netmultithreadingworkflow-foundation-4synchronizationcontextprincipal

解决方案


推荐阅读