《WF编程》系列之47 第八章 工作流中的通信
2010-10-01 08:20:45 来源:WEB开发网角色和活动
对基于角色的授权提供支持的两个WF活动是HandleExternalEvent活动和WebServiceInput活动,它们都暴露了具有WorkflowRoleCollection类型的Roles属性。如果我们想要使用基于角色的授权来保护这些活动,我们将需要邦定Roles属性到一个有效的集合上。在下面的代码中,我们声明了一个名为ValidRoles的公有字段。在工作流的Initialized事件处理程序中,我们新添加了一个单独的WebWorkflowRole实例到validRoles集合中。
public partial class BugFlowWithRoles : SequentialWorkflowActivity
{
public WorkflowRoleCollection validRoles = new WorkflowRoleCollection();
private void BugFlowWithRoles_initialized(object sender, EventArgs e)
{
validRoles.Add(new WebWorkflowRole("TechLeads"));
}
}
在角色的位置上,我们需要配置我们的活动来利用角色。
当一个本地通信服务宿主为工作流触发一个事件时,它可以在ExternalDataEventArgs对象的Identity属性中传递Windows身份参数。该活动将会对指派了身份的角色和Role集合中的角色进行比较。如果匹配,那么活动将继续执行;如果不匹配,那么活动将抛出一个WorkflowAuthorizationException异常。我们可以在工作流中使用错误处理来管理这个异常,或者让该异常终止工作流。注意到如果本地通信服务没有在事件参数中显示地传递一个身份,那么工作流将使用与当前线程相关联的身份。
- ››WF 4.0 beta1中的跟踪机制
- ››WF 4.0的建模风格:顺序和Flowchart
- ››WF4.0 Beta1之旅(5):规则引擎的变化
- ››WF 4.0 beta1活动概览(1):Procedural
- ››WF4.0 Beta1之旅(4):Bookmark的使用
- ››WF4.0 Beta1之旅:基本介绍
- ››WF4.0 Beta1之旅(2):异常处理
- ››WF4.0 Beta1之旅(3):全新的FlowChart
- ››WF 应用场景指南: SharePoint 与工作流(上)
- ››WF 应用场景指南: 展现流(Presentation Flow)
- ››WF单元测试系列1:测试基本的Activity
- ››WF单元测试系列2:简单测试Activity的行为
更多精彩
赞助商链接