Pregunta

Estoy sustitución de un servicio web existente con un servicio WCF y como el primer paso de la migración Voy a exponer un punto final con BasicHttpBinding hasta que el cliente se actualiza más tarde en el año.

El plan es para acoger el nuevo servicio WCF con un servicio de Windows (el servicio sólo se puede llamar desde la intranet así que no hay necesidad real de HTTP), pero la exposición de HTTP básico y los puntos finales net.tcp por lo que la migración puede ocurrir en etapas.

Sin embargo, estoy teniendo algunos problemas para conseguir el nombre de host de la persona que llama en mi servicio WCF, mirando el código de servicio web actual que está usando Context.Request.UserHostName para obtener el nombre de host. Me las he arreglado para obtener nombre de usuario o IP de la persona que llama, pero todos los servicios de autorización / relacionados con la seguridad en el entorno utiliza el nombre de host en lugar de IP, por lo que ¿hay alguna manera para que consiga el NombreHost dentro de mi servicio?

P.S. He puesto el modo de seguridad a TransportCredentialOnly con clientCredientialType establecido en Windows

¿Fue útil?

Solución

Dado que no se aloja en IIS, no se puede utilizar ASP. NET modo de compatibilidad para obtener acceso a la HttpContext que normalmente estará presente en una proceso ASP.NET.

En su lugar, puede utilizar la GetHostEntry método en la clase Dns en el System.Net espacio de nombres para obtener el ejemplo IPHostEntry el cual contendrá los alias (nombres DNS) para las direcciones IP que está obteniendo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top