Pregunta

gente, Estoy construyendo un servicio REST que se asegura proporcionando una firma XML XMLDSIG en la parte inferior del documento XML. Cuando envío de este documento en el servidor, el servicio WCF está haciendo el XML método de-serialización en la carga útil de HTTP para darme una clase C #. Por desgracia para esta de-serialización que se produzca adecuadamente, las necesidades de definición de clase C # que tienen todas las propiedades requeridas para definir la firma XML, a pesar de que sólo es necesario que para la seguridad.

Por lo tanto, lo que me gustaría hacer es la siguiente:

  • construir un comportamiento en servicio WCF que, pre-llamada, examina la firma XML, lo valida y luego se la despoja de la XML antes de la des-serialización de la llamada al método regular.

¿Es esto posible? Si es así, ¿dónde puedo empezar a buscar la manera de hacer esto? Siento que estoy cerca simplemente no han encontrado el punto de inyección WCF derecha.

p.s. Todo es .NET 4.0, Visual Studio 2010, IIS 7 +.

¿Fue útil?

Solución

descubierto. He creado una clase XmlSignatureVerificationConfigurationSection que me permite soltar un elemento XML llamado directamente en la configuración de mi comportamiento WCF. Esta sección de configuración después señala WCF para el tipo de datos de mi extensión comportamiento, SignatureVerificationBehavior. Este comportamiento se señala a continuación, a una costumbre Mensaje inspector escribí, SignatureVerificationInspector. Este inspector se abra el mensaje, elimina el nodo de la firma de la carga útil, verifica la firma, y ??luego envía el nuevo atrás mensaje (firma eliminado) en por la tubería donde las definiciones de servicios siguen siendo felizmente ignorante de la presencia de firmas.

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