WEB开发网
开发学院软件开发C语言 《WF编程》系列之47 第八章 工作流中的通信 阅读

《WF编程》系列之47 第八章 工作流中的通信

 2010-10-01 08:20:45 来源:WEB开发网   
核心提示: 角色和活动 对基于角色的授权提供支持的两个WF活动是HandleExternalEvent活动和WebServiceInput活动,它们都暴露了具有WorkflowRoleCollection类型的Roles属性,《WF编程》系列之47 第八章 工作流中的通信(8),如果我们想要使用基于角色的授

角色和活动

对基于角色的授权提供支持的两个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"));
  }
}

在角色的位置上,我们需要配置我们的活动来利用角色。

《WF编程》系列之47 第八章 工作流中的通信

当一个本地通信服务宿主为工作流触发一个事件时,它可以在ExternalDataEventArgs对象的Identity属性中传递Windows身份参数。该活动将会对指派了身份的角色和Role集合中的角色进行比较。如果匹配,那么活动将继续执行;如果不匹配,那么活动将抛出一个WorkflowAuthorizationException异常。我们可以在工作流中使用错误处理来管理这个异常,或者让该异常终止工作流。注意到如果本地通信服务没有在事件参数中显示地传递一个身份,那么工作流将使用与当前线程相关联的身份。

上一页  3 4 5 6 7 8 9 10  下一页

Tags:WF 编程 系列

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接