2012-04-03 16 views
1

Ich versuche, über WCF eine Verbindung zu einem Java-Dienst herzustellen. Der Dienst erwartet, dass der Hauptteil und nur der Hauptteil der SOAP-Nachricht signiert wurde.WCF Nur den Körper signieren

Ich mache eine benutzerdefinierte Bindung mit MutualCertificate Sicherheit, aber es scheint, dass dies nicht nur den Körper sondern auch die Kopfzeile (oder einen Teil davon) unterzeichnet.

Stimmt das?

Und wenn es ist, wie kann ich nur den Körper unterschreiben?

Dank

Antwort

1

Ich würde denken, dass Sie verwenden können:

[MessageBodyMember(ProtectionLevel=ProtectionLevel.EncryptAndSign)]

oder

[MessageBodyMember(ProtectionLevel=ProtectionLevel.Sign)] 

zu markieren, was Sie wollen signierte/verschlüsselte?

+0

Ich möchte, dass nur die Stelle signiert, nicht irgendein Teil der Kopfzeile – DkAngelito

+2

genau - so jedes Körperteil hinzufügen, das Tag zu. – Chris

+0

uh .. nicht so einfach, denn selbst die Teile, die diesen Dekorator nicht haben, sind 'SignAndEncrypt''d. Weil das die Standardeinstellung ist. Um dies zu erreichen, müsste er zuerst 'ProtectionLevel = ProtectionLevel.None' oben auf der Vertrags-Interface-Ebene setzen und dann bei jedem einzelnen Nachrichtentext wie in Ihrem Decorator-Beispiel auf 'Sign' setzen. Und er verwendet Transportsicherheit, so dass keine Verschlüsselung erforderlich ist, nur Signieren. –

Verwandte Themen