Frage

Die Leute, Ich baue einen RESTful-Dienst, durch die Bereitstellung einer XMLDSIG XML-Signatur am unteren Rande des XML-Dokuments gesichert ist. Als ich dieses Dokument an den Server senden, wird der WCF-Dienst tut das XML-de-Serialisierungsmethode auf dem HTTP-Nutzlast mir eine C # Klasse zu geben. Leider ist für diese Deserialisierung richtig auftreten, muss die C # Klassendefinition alle Eigenschaften haben, erforderlich, um die XML-Signatur zu definieren, obwohl nur ich brauche, dass für die Sicherheit.

Also, was würde ich tun möchte, ist dies:

  • ein WCF-Dienst Verhalten bauen, dass Pre-Aufruf, die XML-Signatur überprüft, validiert sie und dann streift sie ab dem XML vor der De-Serialisierung für den regulären Methodenaufruf.

Ist das möglich? Wenn ja, wo kann ich suchen beginnen, wie dies zu tun? Ich fühle mich wie ich bin in der Nähe habe ich einfach nicht die richtige WCF Injektionsstelle gefunden.

P. S. Alles ist .NET 4.0, Visual Studio 2010, IIS 7 +.

War es hilfreich?

Lösung

es herausgefunden. Ich habe eine XmlSignatureVerificationConfigurationSection Klasse, die mir ein XML-Elements direkt in meine WCF Verhalten Konfiguration aufgerufen Drop ermöglicht. Dieser Konfigurationsabschnitt zeigt dann WCF auf den Datentyp meines Verhaltens Erweiterung, SignatureVerificationBehavior. Dieses Verhalten zeigt dann auf eine benutzerdefinierte Nachricht Inspektor Ich schrieb, SignatureVerificationInspector. Dieser Inspektor Pop die Nachricht öffnen, entfernt die Signatur Knoten von der Nutzlast, verifiziert die Signatur, und sendet dann die neue (Signatur entfernt) Nachricht zurück auf unten in der Pipeline in dem die Dienstdefinitionen wohlig die Anwesenheit von Signaturen unwissend bleiben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top