Přidání Username Token Profile do volání webové služby   otázka

VB.NET

Dobrý den,

řeším problém s přidáním hlaviček do volání webové služby.

Webovou službu mám načtenou přes proxy třídy, potřeboval bych ale do hlavičky SOAP zprávy přidat Security - UsernameToken.

Výsledek by měl vypadat takto:

<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:net="net:profis:aca:ws:eservices:endpoint" xmlns:net1="net:profis:aca:ws:zakaznik:vo" 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" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
			<wsse:UsernameToken wsu:Id="UsernameToken-388FC84C94D3F15B6D140775515181718">
				<wsse:Username>JMENO</wsse:Username>
					<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">HESLO</wsse:Password>
					<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">9h26CKlTaa495eqxebsxKg==</wsse:Nonce>
					<wsu:Created>2016-05-11T11:05:51.817Z</wsu:Created>
			</wsse:UsernameToken>
		</wsse:Security>
    </soapenv:Header>                    
    <soapenv:Body>
        <net:GetObchodniVztahRequest><net2:ZakazkaCislo xmlns:net2="net:profis:aca:ws:eservices4:vo">1234567890</net2:ZakazkaCislo><net2:datum xmlns:net2="net:profis:aca:ws:eservices4:vo">2016-05-20</net2:datum></net:GetObchodniVztahRequest>
    </soapenv:Body>
</soapenv:Envelope>

Neporadil by někdo, jak lze data do hlavičky přidat?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Popíšu zběžně, jak jsme toto implementovali .

- máme vlastní třídup poděděnou od System.Service.Model.Channels.MesageHeader

- v její metodě OnWriteHeaderContents do writeru generujem celý text hlavičky počínaje wsse

- instance takové metody je pak insertovaná pomocí OperationContext.Current.OutgoingMessageHeaders.Add() před provedením requestu

Máme to tady jako součást většího frameworku, takže nepostuju tu hromadu abstraktního kódu, ale mohlo by pomci.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback