Ich habe erfolgreich einen WS-Client erstellt, der korrekt funktioniert, wenn Sie keine Authentifizierung verwenden.SOAP hinzufügen: HEADER Benutzername und Passwort mit WSE 3.0
Allerdings muss der Server (WebSphere) jetzt ein Ws-Security-Benutzernamen-Token hinzufügen, und es fällt mir schwer, dies zu tun. Die sich ergebende SOAP-Nachricht soll so etwas wie folgt aussehen:
<soapenv:Envelope
xmlns:ns="http://foo.bar/1.0"
xmlns:ns1="http://www.witsml.org/schemas/140"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken-2" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>foo</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">bar</wsse:Password>
<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">foooooobar==</wsse:Nonce>
<wsu:Created>2010-01-25T13:09:24.860Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<ns:fooBar>...</ns:fooBar>
</soapenv:Body>
Ich habe heruntergeladen und installiert Microsoft WSE 3.0 SDK und einen Verweis auf die DLL in meinem Visual Studio 2005-Projekt hinzugefügt.
Ich habe jetzt Zugriff auf die Microsoft.Web.Services3. * Namespaces, aber ich bin derzeit ratlos, wie es weiter geht.
Der Client-Code wird automatisch von einer Web-Referenz erzeugt worden ist, so dass ich nur eine geringe Menge an Arbeit tun, um die Nachricht an den Server unauthenticated zu senden:
WS.FooResultHttpService ws = new WS.FooResultHttpService();
ws.Url = "http://foo.bar.baz";
ws.SendSomething(message);
ich nur zu untersuchen begonnen habe mit Microsoft.Web.Services3.Security.Tokens.UsernameTokenManager
, aber bis jetzt konnte ich nichts in Gang bringen.
Alle Hinweise würden sehr geschätzt werden, da ich keine guten Rezepte im Netz finden kann.
Danke!
Danke, das war sehr hilfreich! – csl
+1 sehr nützlich. Hatte ein Problem generieren Proxy mit WseWsdl3.exe auf VS2010, Dies wurde durch Hinzufügen von Eintrag in der Registrierung behoben. Fügen Sie den Zeichenfolgenschlüssel "sdkInstallRootv2.0" unter HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ .NETFramework \ mit dem Wert "C: \ Programme \ Microsoft SDKs \ Windows \ v6.0A" hinzu. – Siva