5 messaggi dal 22 aprile 2016
Ciao a tutti,
vi scrivo in quanto sono in grande difficoltà. Da un mese sto provando a contattare un web service avendo un WSDL a disposizione ma a quando mi riferiscono non invio correttamente le credenziali nel SOAP Header.
Come procedura faccio un nuovo progetto in framework 2.0 come consolle application (spero sia giusto), dopo di che aggiungo il riferimento al servizio inserendo il WSDL che mi scarica il riferimento e le classi di ulitizzo. Mi trovo però in difficoltà nel passare le credenziali, e l'unico aiuto che ho è che l'xml deve avere il seguente formato:

<?xml version="1.0" encoding="UTF-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="UID:17a124d0-52a0-4303-9751-a508b25a4329">
<wsse:Username>WSOEG026</wsse:Username>
<wsse:Password Type="wsse:PasswordText">pwd</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
<wsctx:CICS-TOKEN xmlns:wsctx="http://www.cedacri.it">7UM70BM1</wsctx:CICS-TOKEN>
</s:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<EstrattoContoItaliaIn xmlns="http://www.cedacri.it/EstrattoContoItalia/schemas/in">
<HeaderIn xmlns="http://www.cedacri.it/Header/schemas/in">
<timestamp>0001-01-01T00:00:00</timestamp>
<istituto>0</istituto>
<oggetto>prova</oggetto>
</HeaderIn>
</EstrattoContoItaliaIn>
</s:Body>
</s:Envelope>

Non saprei come fare, ho messo le credenziali dell'header HTTP ma come mi hanno detto vanno messe nel SOAP header, qualcuno sa come posso fare?
Non mi è chiaro se posso incollare la parte dell'Header da qualche parte nel file .config che mi si crea dopo aver richiamato il riferimento, è questo un modo?
Grazie :)
5 messaggi dal 22 aprile 2016
Ragazzi vi aggiorno ho risolto con wse di Microsoft l'unica cosa é quel campo dopo <wsctx CIST-TOKEN, che non ho idea di come aggiungere, qualcuno mi può aiutare?
Ve ne sarei grato :)
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
prova così, definendo nel servizio una proprietà di un tipo personalizzato che deriva da SoapHeader.
http://stackoverflow.com/questions/18980689/adding-custom-soapheader-in-c-sharp-for-a-web-service-call#answers

Nel tuo caso, dato che il valore viene serializzato come testo dell'elemento xml, dovresti provare a controllare la serializzazione con questi attributi, oppure implementando ISerializable.
https://msdn.microsoft.com/en-us/library/system.runtime.serialization.iserializable(v=vs.110).aspx

ciao,
Moreno

Enjoy learning and just keep making
5 messaggi dal 22 aprile 2016
Ciao grazie della risposta ma non riesco a capirla molto, sono alle prime armi e lo sto facendo per lavoro. Per aggiungere user e passwrd ho trovato molto semplice quel WSE, è cosi complicato aggiungere una riga di CICS-TOKEN per l'header?
scusa ancora ma sono davvero in alto mare.
Ho cercato in tutte le classi WebServiceProtocol se c'era qualcosa che ricordase il Context Token ma ce ne sono molti e non so questo CICS a cosa si possa riferire.
Grazie
Modificato da darm il 28 aprile 2016 15.37 -
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,


non so questo CICS a cosa si possa riferire.

non saprei, non conosco quel token. A giudicare dal suo namespace, direi che è un valore custom introdotto dall'azienda che ha sviluppato il servizio.

Ora sono in viaggio e non ti posso rispondere in maniera appropriata, quindi per il momento ti mando giusto un link che spiega la stessa cosa del post di prima ma in maniera più dettagliata.
http://forums.asp.net/t/1056892.aspx?WebService+Client+Adding+Soap+Header

ma non riesco a capirla molto, sono alle prime armi

Non è complicato, si tratta semplicemente di scrivere una classe che deriva da SoapHeader ed usare degli attributi. Casomai fatti affiancare temporaneamente da uno sviluppatore con più esperienza.

Il problema potresti averlo nel fare in modo che la classe che deriva da SoapHeader venga serializzata nel modo esatto in cui vuoi tu. Implementare IXmlSerializable ti aiuterà allo scopo.

ciao,
Moreno

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.