martes, 7 de diciembre de 2010

ASP.NET - Ocultar metodos de Servicio Web

aspnet_web_service Cuando desarrollamos servicios web, habrán notado que toda la información de cómo hay que comunicarse con cada uno de los métodos del ws es pública.
Entonces, cualquier persona que llegue hasta tu web service, puede revisar cuáles son los parámetros que necesita cada uno de los métodos de tu servicio web para establecer una comunicación.
Lógicamente, dependiendo de los mecanismos de seguridad que hayas incluido en tu servicio web, podrás restringir el acceso a dichos métodos.
Pero, pero, pero… hay una forma recontra simple para esconder la documentación de todos los métodos de tu web service. Lo único que hay que hacer es añadir las siguientes líneas dentro del web.config (dentro de System.Web):
<webServices>
<protocols>
<remove name="Documentation"/>
</protocols>
</webServices>
Pero ojo: antes de añadir estas líneas en el web.config, primero deben añadir la referencia al web service desde su aplicación cliente, de este modo se descargará toda la información acerca de los métodos del web service, como son los archivos .disco, .wsdl y .map.

Luego de añadir esas líneas, ejecuten directamente el web service y verán que muestra un mensaje de error como la imagen que adjunto a continuación:

aspnet_web_service2

Sin embargo podrán conectarse desde su aplicación cliente al web service sin ningún problema.

Aquí hay un post adicional, con un método alternativo para ocultar los métodos del servicio web.

Espero que les sea de utilidad ;)

No hay comentarios.: