Laden...

SOAP-Header für HttpWebRequest anpassen

Erstellt von msycho vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.560 Views
M
msycho Themenstarter:in
234 Beiträge seit 2007
vor 13 Jahren
SOAP-Header für HttpWebRequest anpassen

Hi!
Ich muss für einen HttpWebRequest den SOAP-Header anpassen.
U.a. müssen dort die Nodes wsu:Timestamp, wsu:Created und wsu:Expires rein. Hat sowas schon mal wer gehört? Wie komme ich auf deren Values? Gibt's da was Fertiges vom Framework?

S
8.746 Beiträge seit 2005
vor 13 Jahren

Deine Frage ist unklar: Ein HttpWebRequest hat erstmal mit SOAP gar nix zu tun. SOAP macht z.B. WCF oder auch WS mit ASP.NET. Bei WCF kannst du so gut wie alles manipulieren.

Wenn du dein SOAP per Hand baust und per HttpWebRequest losschickst, hast du sowieso alles in der Hand.

M
msycho Themenstarter:in
234 Beiträge seit 2007
vor 13 Jahren

Ehrlich gesagt, ist es mir im Moment selber unklar. 🙁

Ich hab hier ein Webservice bzw. die URL zur WSDL. Ich muss den ansprechen mit einem "besonderen" SOAP-Header.

3.170 Beiträge seit 2006
vor 13 Jahren

Hallo,

Ehrlich gesagt, ist es mir im Moment selber unklar.

Geht mir genauso. Denn normalerweise ist ja durch die WSDL festgelegt, wie das SOAP aussehen muss. Das sieht danach aus, als könnte der angesprochene Dienst sich selbst nicht richtig per WSDL beschreiben.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

S
8.746 Beiträge seit 2005
vor 13 Jahren

Hast denn mal überhaupt versucht den Dienst zu nutzen? Einfach mal als Service-Referenz einbinden. Wenn du auf 2.0 festgenagelt bist, dann halt als Web-Referenz.

Die von die angesprochenen Elemente sind über das "WS-I Basic Security Profile" vorgeschrieben. WCF setzt dieses Profil um. Bei ASP.NET musst du wohl noch die WSE 3.0-Erweiterung zusätzlich einbinden.

M
msycho Themenstarter:in
234 Beiträge seit 2007
vor 13 Jahren

Die WSDL beschreibt den SOAP-Header nicht, nein - das ist richtig.

Ich habe aber eine Beschreibung vorliegen, wie der Header auszusehen hat.

Wenn ich den Dienst als Referenz einbinde und ich ihn aufrufe, bekomme ich entsprechende Fehlermeldungen als Antwort, dass eine Validierung nicht möglich sei, weil eben der Header nicht stimmt.

Genau hier ist, finde ich, die richtige Stelle um anzusetzen. Ich kann den Dienst offensichtlich ansprechen - nur mit einer unvollständigen Request. Kann ich an der Stelle einfach den SOAP-Header "manipulieren"?

S
8.746 Beiträge seit 2005
vor 13 Jahren

Sicher, dass du WCF und nicht ASP.NET machst? Ansonsten mal checken was WCF sendet (Fiddler oder WCF-Tracetool).

C
5 Beiträge seit 2008
vor 13 Jahren

Möglicher Lösungsansatz unter ...

Is there a better way of customizing SOAP headers in C#