.net wcf wcf-binding

.net - endpoint web config



¿Cómo obtener la dirección IP de un punto final remoto WCF? (3)

Aparentemente se ha agregado en 3.5 a través de RemoteEndpointMessageProperty ; mira here

¿Hay alguna manera de obtener la dirección IP remota de una conexión WCF?

Supongo que la razón por la cual no está incorporada en el marco de WCF es que WCF puede trabajar con enlaces no TCP / IP, por lo que la dirección IP no siempre es significativa.

Sin embargo, la información tendría sentido para todas las vinculaciones ampliamente utilizadas (hasta donde sé: BasicHttp, DualHttp, WSHttp y NetTcp).

La dirección IP probablemente sea accesible usando la reflexión, pero prefiero encontrar una forma documentada de obtenerla en lugar de piratear las clases de framework.

He buscado en Google sobre el tema, y ​​parece que mucha gente se ha topado con él sin encontrar una solución decente (la respuesta habitual es confiar en los encabezados del mensaje , pero esto implica confiar en que el cliente proporcione su dirección IP real, que no es una opción si desea registrar la dirección IP por razones de seguridad)


si está en el lado del servicio y desea obtener la IP del cliente, debe verificar las Propiedades del mensaje de OperationContext. mira here o here por ejemplo


OperationContext context = OperationContext.Current; MessageProperties properties = context.IncomingMessageProperties; RemoteEndpointMessageProperty endpoint = properties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty; string address = endpoint.Address;