Pregunta

Estoy modificando mi API WCF para incluir un nuevo servicio que debe ser expuesto a sólo direcciones IP internas. Todos los servicios en mi API están disponibles en SOAP, POX y JSON. Lo que estoy buscando es un comportamiento o algo que me permite implementar un filtro de dirección IP simple, para procesar las solicitudes de IP interna de negar y todo lo demás. Me gustaría que funcione en la configuración, ya que todos los demás servicios de la API deben permanecer a disposición de la Internet. Hice algunas google pero no puedo encontrar nada como esto integrado en WCF. Me estoy perdiendo algo?

¿Fue útil?

Solución

Ok, lo he descubierto, y su tipo de mancha, en mi opinión. He implementado un sistema de filtro IP como un comportamiento en servicio, a continuación, añadí a mi servicio en el web.config. Aquí está mi nueva sección comportamientos web.config:

<serviceBehaviors>
    <behavior name="ServiceBehaviour">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
    <behavior name="RestrictedServiceBehaviour">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
      <IPFilter filter="172.*.*.* 127.0.0.1" />          
    </behavior>
  </serviceBehaviors>

La clase implementa IPFilter IDispatchMessageInspector para atrapar la solicitud tan pronto como sea posible, inspeccionar el IP del cliente y lanzar una excepción si no coincide con el filtro. Si alguien está interesado puedo publicar mi código.

Otros consejos

Si el servicio está alojado en IIS, entonces usted puede hacer esto con IIS, en función de cada sitio web (tal vez por aplicación, pero no lo sé).

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