Question

Folks,   Je construis un service RESTful qui est garanti en fournissant une signature XML XMLDSIG au bas du document XML. Quand je vous envoie ce document sur le serveur, le service WCF fait la méthode XML de-sérialisation sur la charge utile HTTP pour me donner une classe C #. Malheureusement pour cela se produit de-sérialisation correctement, les besoins de définition C # classe d'avoir toutes les propriétés requises pour définir la signature XML, même si je ne ai besoin que pour la sécurité.

Alors, ce que je voudrais faire est la suivante:

  • construire un comportement de service WCF qui, pré-appel, examine la signature XML, valide et il retire ensuite le fichier XML avant la désérialisation pour l'appel de méthode régulière.

Est-ce possible? Si oui, où puis-je commencer à chercher comment faire? Je sens que je suis proche que je viens pas trouvé le point d'injection droit WCF.

p.s. Tout est .NET 4.0, Visual Studio 2010, IIS 7 +.

Était-ce utile?

La solution

figured it out. J'ai créé une classe XmlSignatureVerificationConfigurationSection qui me permet de supprimer un élément XML appelé directement dans la configuration de mon comportement WCF. Cette section de configuration pointe alors WCF le type de données de mon extension de comportement, SignatureVerificationBehavior. Ce comportement fait alors un message sur mesure Inspecteur je l'ai écrit, SignatureVerificationInspector. Cette pops inspecteur ouvre le message, supprime le nœud de la signature de la charge utile, vérifie la signature, puis envoie le nouveau message (signature retirée) de retour sur le pipeline où les définitions de service restent parfaitement ignorants de la présence de signatures.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top