本主题适用于 Windows Workflow Foundation 4。
安全工作流服务示例演示以下过程:
使用 Windows Communication Foundation (WCF) 配置定义供工作流服务使用的安全终结点。
创建自定义策略内的声明并使用 ServiceAuthorizationManager 验证声明。
演示
使用 WCF 安全保护客户端和工作流服务(基于声明的授权)之间的通信
讨论
此示例演示如何使用 WCF 安全基础结构来像保护正常的 WCF 服务一样保护工作流服务。具体来说,它使用自定义声明进行授权。在此例中,它将 WSHttpBinding 和消息模式安全与 Windows 凭据一起使用。
自定义 IAuthorizationPolicy (CustomNameCheckerPolicy
) 检查客户端的 Windows 用户名中是否存在特定的字符。如果存在该字符,则它创建声明并将其添加到 EvaluationContext。通过执行此操作,自定义策略将声明,客户端在用户名中包含该字符。可以在整个调用的生存期查询此声明。可以在 Constants.cs
中查找该字符。
授权策略在 SecureWorkFlowAuthZManager
内查找此声明。如果它找到此声明,则返回 true 并允许工作流继续。否则,它返回 false,这将导致将“访问被拒绝”消息返回给客户端。其他声明存在于上下文中并且也可以在 SecureWorkFlowAuthZManager
内部进行检查。
运行此示例
使用管理员权限运行 Visual Studio 2010。
在 Visual Studio 2010 中加载 SecuringWorkflowServices.sln。
按 F6 编译解决方案。
将 Service 项目设置为解决方案的启动项目。
按 Ctrl+F5 启动服务而不进行调试。
将 Client 项目设置为解决方案的启动项目。
按 Ctrl+F5 启动客户端而不进行调试。
![]() |
---|
您的计算机上可能已安装这些示例。在继续操作之前,请先检查以下(默认)目录:
<安装驱动器>:\WF_WCF_Samples
如果此目录不存在,请转到 .NET Framework 4 的 Windows Communication Foundation (WCF) 和 Windows Workflow Foundation (WF) 示例(可能为英文网页),下载所有 Windows Communication Foundation (WCF) 和 WF 示例。此示例位于以下目录:
<安装驱动器>:\WF_WCF_Samples\WF\Scenario\Services\SecuringWorkflowServices
|