Domanda

La gente,   Sto costruendo un servizio RESTful che è garantita, fornendo una firma XML XMLDSIG al fondo del documento XML. Quando invio questo documento al server, il servizio WCF sta facendo l'XML metodo di de-serializzazione sul payload HTTP di darmi una classe C #. Purtroppo per questo de-serializzazione si verifichi correttamente, le esigenze di definizione classe C # di avere tutte le proprietà richieste per definire la firma XML, anche se ho solo bisogno che per la sicurezza.

Quindi, quello che vorrei fare è questo:

  • costruire un comportamento servizio WCF che, pre-chiamata, esamina la firma XML, convalida e poi strisce fuori dal XML prima che la de-serializzazione per la chiamata al metodo normale.

È possibile? Se è così, dove posso cominciare a cercare come fare questo? Mi sento come se fossi vicino io non ho trovato il giusto punto di iniezione WCF.

P.S. Tutto è NET 4.0, Visual Studio 2010, IIS 7 +.

È stato utile?

Soluzione

capito. Ho creato una classe XmlSignatureVerificationConfigurationSection che mi permette di eliminare un elemento XML chiamato direttamente nella mia configurazione di comportamento WCF. Questa sezione di configurazione indica poi WCF per il tipo di dati della mia estensione comportamento, SignatureVerificationBehavior. Questo comportamento indica poi una consuetudine Messaggio ispettore ho scritto, SignatureVerificationInspector. Questo ispettore si aprirà il messaggio, rimuove il nodo firma dal payload, verifica la firma, e quindi invia il nuovo (firma rimosso) Messaggio di nuovo in giù la conduttura in cui le definizioni di servizi rimangono beatamente ignari della presenza di firme.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top