进行WCF地址代码进行说明
创始人
2024-06-14 08:11:42
0

WCF地址能否获取客户端地址IP信息,好多人都遇到过,我们传统的机遇的网络应用和 Web Service都提供了获取客户端地址的信息的实现机制。下面进行介绍说明。

WCF地址主要使用是.NET3.5里的服务端上下文的消息实例的RemoteEndpointMessageProperty属性,获取客户端地址信息。但是限制的绑定是HTTP、TCP相关的绑定协议。网络通信的底层机制来说,数据包如果经由TCP传输,IP数据包应该包含地址和端口信息,WCF地址这个我们网络编程也可以理解。但是WCF获取客户端地址信息早期却没提供相应的实现。其实按照道理来说没什么难度。只是多做个数据包的解析工作,然后把地址信息包装即可。#t#

WCF地址示例代码:

这里给出服务端获取客户端IP地址信息的示例代码分析和实现过程,这里的测试主要是针对HTTP、TCP相关的协议做了4个测试。NamePipeBinding等协议不做测试了,本地协议不需要IP和端口。我们主要测试的是几个主要的协议,来验证以上的结论。

服务端:

主要是对RemoteEndpointMessageProperty属性的使用来获取地址、端口信息。WCF地址具体代码如下:

  1. 服务契约  
  2. [ServiceContract(Namespace = "http://www.cnblogs.com/frank_xl/")]  
  3. public interface IWCFService  
  4. {  
  5. //操作契约  
  6. [OperationContract]  
  7. string SayHelloToUser(string name);  
  8. }  
  9. //服务类,继承接口。实现服务契约定义的操作  
  10. public class WCFService : IWCFService  
  11. {  
  12. //实现接口定义的方法  
  13. public string SayHelloToUser(string name)  
  14. {  
  15. //提供方法执行的上下文环境  
  16. OperationContext context = OperationContext.Current;  
  17. //获取传进的消息属性  
  18. MessageProperties properties = context.IncomingMessageProperties;  
  19. //获取消息发送的远程终结点IP和端口  
  20. RemoteEndpointMessageProperty endpoint = properties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;  
  21. Console.WriteLine(string.Format("Hello {0},You arefrom {1}:{2}", name, endpoint.Address,endpoint.Port));  
  22. return string.Format("Hello {0},You arefrom {1}:{2}", name, endpoint.Address, endpoint.Port);  
  23. }  

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...