摘要:
通过上一篇我们已经可以拦截WCF消息,现在我们可以利用该功能实现操作用户身份信息的传播。实现思路为:1、客户端调用WCF服务时拦截客户端消息,在消息头中附加操作者的身份信息;2、服务端收到消息后,从消息头中取出身份信息。其中用户身份可以保存在应用程序域的Iprincipal中,如下所示: AppDomain currentDomain = AppDomain.CurrentDomain; currentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal); IIdentity identity = new GenericIden 阅读全文
摘要:
有两种方式可以扩展WCF:定制行为、定制绑定。行为用来控制内部的通信方法,绑定元素用来创建控制外部通信方法的信道。具体来讲,在WCF的客户端,行为用来修改某些组件的操作,这些组件主要负责将发送的数据序列化在消息中,以及反序列化响应;在WCF的服务端,行为用来修改调度器组件(dispatcher)的功能。(以上为《WCF3.5揭秘》中的原话)定制行为的类型包括操作选择器、参数检查器、消息格式器、消息检查器四种。操作选择器返回处理消息的操作;参数检查器可以修改调用的参数;消息格式器负责将接收的消息反序列化以及将要发送的消息序列化;消息检查器可以在消息通过终结点的时候操作和修改消息。根据以上描述,我 阅读全文