如何获取WCF远程端点的IP地址?

Bra*_*ann 24 .net wcf wcf-binding

有没有办法获得WCF连接的远程IP地址?

我想它没有内置到WCF框架中的原因是WCF可以使用非TCP/IP绑定,因此IP地址并不总是有意义的.

但是,这些信息对于所有广泛使用的绑定都是有意义的(据我所知:BasicHttp,DualHttp,WSHttp和NetTcp).

IP地址可能是使用反射访问的,但我宁愿找到一种记录的方法来获取它而不是入侵框架类.

我已经在Google上搜索了这个问题,似乎很多人在没有找到合适的解决方案的情况下遇到过这种情况(通常的答案是依赖于邮件头,但这意味着信任客户端提供其真实的IP地址,如果您出于安全原因要记录IP地址,则不能选择此选项)

Mar*_*ell 14

显然它已经通过RemoteEndpointMessageProperty添加到3.5中; 看到这里.


Cyr*_*rus 5

OperationContext context = OperationContext.Current;
MessageProperties properties = context.IncomingMessageProperties;
RemoteEndpointMessageProperty endpoint = properties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
string address = endpoint.Address;
Run Code Online (Sandbox Code Playgroud)