ClientInterpector.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /*******************************************************************************
  2. * Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
  3. * 类的信息:
  4. * 1.程序名称:ClientInterpector.cs
  5. * 2.功能描述:客户端消息检查器
  6. * 编辑履历:
  7. * 作者 日期 版本 修改内容
  8. * 陈晓野 2014/08/13 1.00 新建
  9. *******************************************************************************/
  10. using System.ServiceModel;
  11. using System.ServiceModel.Channels;
  12. using System.ServiceModel.Dispatcher;
  13. using Dongke.IBOSS.PRD.Basics.BaseResources;
  14. namespace Dongke.IBOSS.PRD.WCF.Proxys.ClientInterpector
  15. {
  16. /// <summary>
  17. /// 客户端消息检查器
  18. /// </summary>
  19. public class ClientInterpector : IClientMessageInspector
  20. {
  21. /// <summary>
  22. /// 在收到回复消息之后将它传递回客户端应用程序之前,启用消息的检查或修改
  23. /// </summary>
  24. /// <param name="reply">要转换为类型并交回给客户端应用程序的消息</param>
  25. /// <param name="correlationState">关联状态数据</param>
  26. public void AfterReceiveReply(ref Message reply, object correlationState)
  27. {
  28. }
  29. /// <summary>
  30. /// 在将请求消息发送到服务之前,启用消息的检查或修改
  31. /// </summary>
  32. /// <param name="request">要发送给服务的消息</param>
  33. /// <param name="channel">客户端对象通道</param>
  34. /// <returns>correlationState</returns>
  35. public object BeforeSendRequest(ref Message request, IClientChannel channel)
  36. {
  37. // 设置验证头信息
  38. if (ProxySettings.LoginUserInfo != null)
  39. {
  40. request.Headers.Add(MessageHeader.CreateHeader(Constant.S_WCF_MESSAGE_HEADER_NAME, Constant.S_WCF_MESSAGE_HEADER_NAMESPACE, ProxySettings.LoginUserInfo));
  41. }
  42. return null;
  43. }
  44. }
  45. }