接着
上一篇的实例,我们通过Routing Service使用了 filterType="EndpointName" 来转发客户端的请求,映射到内部多个服务上。
但问题又来了,比如有2个内部服务A,B。有N个客户端,并不是所有的客户端同时都有对A,B的访问权限,
有些客户端可以访问A,有些客户端可以访问B,如何控制客户端请求的权限呢?了解WCF认证机制的童鞋们大多数会想到通过服务A,B
自身的认证功能去屏蔽非法的访问,甚至更优秀的实践是抽出共通的消息拦截,将A,B的认证统一处理。本篇文章则要在 RoutingService 的 Filter 上做做功夫。
我们要实现的功能,如下图所示:
即 User A 只能访问 Service1, User B 只能访问 Service2。这里要利用自定义 Filter 实现对用户名的检查,自定义Filter需要继承 MessageFilter
形如:
这里需要注意的是,RoutingService 中配置了多个 Endpoint,直接返回 true, false 的判断显然不行,还需要修改客户端请求映射到内部的 Endpoint 上。
因此通过直接继承 EndpointNameMessageFilter 来实现最简单~
* 该示例中使用 Windows 集成认证,需要在服务端Windows上建立两个账号:Foo 和 Bar。
如果请求的Action是Service1 则只有 Foo 可以使用,Service2 只有 Bar 可以使用。
修改Routing Service的配置文件中 routing/filters/filter 里的内容:
将 filterType 改为 Custom, customType 指向上面的实现类。整体如下图:
客户端调用:
分享到:
相关推荐
WCF4.0 —— Routing Service 比如下面的场景会使用到路由服务:只暴露一个外部公开的 Endpoint 映射到内部的多个的服务上。 http://blog.csdn.net/fangxinggood/article/details/6872015
wcf4.0英文教材wcf4.0英文教材wcf4.0英文教材
[Packt Publishing] WCF 4.0 多层服务开发 —— 使用 LINQ to Entities 技术 [Packt Publishing] WCF 4.0 Multi-tier Services Development with LINQ to Entities (E-Book) ☆ 出版信息:☆ [作者信息] Mike Liu...
HYPERLINK"http://blog.csdn.net/fangxinggood/article/details/6762632"WCF实例——WindowsServiceHost开发,调试,制作安装包本篇实例介绍如何使用WindowsService来寄宿WCF服务:1.添加WCFServiceLibrary工程,这...
(英文版)WCF 4.0 Multi-tier Services Development with LINQ to Entities Packt Publishing 出版2010, PDF格式
WCF 4.0 Multi-tier Services Development.with LINQ to Entities
Packtpub WCF 4.0 Multi tier Services Development with LINQ to Entities Jun.2010 关于WCF 4.0 和LINQ to Entity 的 新书 流行加时尚的编程利器
[Packt Publishing] WCF 4.0 开发 SOA 程序经典实例 [Packt Publishing] Microsoft Windows Communication Foundation 4.0 Cookbook for Developing SOA Applications (E-Book) ☆ 出版信息:☆ [作者信息] ...
wcf 4.0 pdf .net framework 4.0
WCF4.0 内包含 Routing Service 利用路由服务,指向多个wcf服务
WCF基础示例(传递自定义序列化协定对象)
[Packt Publishing] WCF 4.0 多层服务开发 —— 使用 LINQ to Entities 技术 (英文版) [Packt Publishing] WCF 4.0 Multi-tier Services Development with LINQ to Entities ======================================...
消息安全模式之UserName客户端身份验证需要服务器需要一个有效的可用于TLS 加密和向客户端验证服务身份的 X.509 证书,并且客户端必须信任此服务器证书。...建议安全上下文以后,使用共享安全上下文对SOAP消息进行加密...
Windows Communication Foundation (WCF)是 Microsoft为构建面向服务的应用提供的分布式通信编程框架,是.NET Framework 3.5的重要组成部分
wcfservice示例wcfservice示例wcfservice示例wcfservice示例wcfservice示例
WCF很好的支持了REST的开发,而RESTful的服务通常是架构层面上的考虑。因为它天生就具有很好的跨平台跨语言的集成能力,几乎所有的语言和网络平台都支持HTTP请求,无需去实现复杂的客户端代理,无需使用复杂的数据...
WCF服务,配置可同时支持web调用和WCF调用,可以用于C#程序服务访问,也支持java等程序访问。java通过web调用,C#可以通过wcf访问。
WCF服务寄宿Windows service服务,并用wpf应用程序为客户机访问,解决方案在本机编译成功运行,可以查看里面的app.config了解配置信息。
WCF 自定义编码绑定