surge significado seguridad por net invertida inversa ingeniería ingenieria informatica enviar ejemplos desventajas como clasifica clasica archivos .net web-services wsdl reverse-engineering

.net - significado - ¿La mejor forma de aplicar ingeniería inversa a una interfaz de servicio web desde un archivo WSDL?



ingenieria inversa seguridad informatica (5)

No estoy seguro de que esto ayudará,

Lo que hice recientemente es:

  • Genere un archivo .cs usando la herramienta wsdl o el estudio visual
  • Lo he cambiado para ser una clase parcial
  • Creé otra clase parcial, en la que todo lo que hace es agregar una línea para decir que la clase implementa IWhatEver
  • Creé una interfaz que es la misma que la clase proxy generada (por lo tanto, el proxy implementa completamente la interfaz)

Luego utilicé un framework de Mocking (Moq) en mi caso, para burlarme del WebService, luego utilicé la inyección de poor mans dependendancy (paso el simulacro en un constructor de la clase bajo prueba) ... que puede manejar una instancia de IWhatever

Prueba lejos ...

Espero que ayude

Heredé un archivo WSDL para un servicio web en un sistema al que no tengo acceso para el desarrollo y las pruebas.

Necesito generar un servicio web que se adhiera a ese WSDL. El contenedor es .NET, pero si hay una manera fácil de hacerlo con otra plataforma, podríamos ver eso. El servicio web de producción está basado en Java.

¿Cuál es la mejor manera de hacer esto?

Nota: El wsdl heredado no parece ser compatible con wsdl.exe porque no cumple con WS-I Basic Profile v1.1. En particular, el grupo que lo transmitió mencionó que usa otro estándar que la herramienta de Microsoft no admite, pero no aclararon. El error está relacionado con un campo de ''nombre'' requerido:

Error: Element Reference ''{namespace}/:viewDocumentResponse'' declared in schema type '''' from namespace '''' - the required attribute ''name'' is missing

En aras de la claridad, entiendo que puedo crear fácilmente una clase contenedora .NET desde el archivo WSDL, pero eso no es lo que necesito. Es como esto:

Actualización: el servicio web original fue creado usando Axis.

Diagrama del sistema que muestra el servicio web no disponible y el servicio web simulado http://paulw.us/blog/uploads/SO-WSDL-Question2.gif



Puede encontrar útil la utilidad de línea de comandos wsdl.exe de .NET utilizando la opción /serverInterface . De acuerdo con la documentación:

Genera interfaces para la implementación del servidor de un servicio web ASP.NET. Se genera una interfaz para cada enlace en el (los) documento (s) WSDL. El WSDL solo implementa el contrato WSDL (las clases que implementan la interfaz no deben incluir ninguno de los siguientes en los métodos de clase: atributos del servicio web o atributos de serialización que cambian el contrato WSDL). La forma abreviada es ''/ si''.


Estamos utilizando la herramienta WSCF - Contrato de servicios web primero de Thinktecture para realizar el desarrollo del servicio web creando primero un esquema XSD y luego generando interfaces de servicio utilizando esta herramienta. Puede ser útil generar interfaces de servicio a partir de WSDL pero aún no lo he intentado.


Sí, puede usar WSCF (como se indicó anteriormente) para generar el código del lado del servidor. La URL real se puede sobrescribir para indicar la URL de prueba que desea usar.

Sin embargo, esto solo genera un stub. Todavía tiene que codificar el método real GetCustomers (), que es algo sospechoso porque no tiene idea de cómo funciona la implementación real.

Entonces puede simular esto o crear un servidor web ASP simple para ejecutarlo.