Discuss this help topic in SecureBlackbox Forum
SOAP: Set and get ID, MustUnderstand, EncodingStyle attributes
To set ID, MustUnderstand and EncodingStyle attributes, were applicable, use appropriate properties. The sample code below sets MustUnderstand and EncodingStyle attributes for WS-Security header:
C#:
if (SOAPMessage.SecurityHeaderCount > 0)
{
SOAPMessage.get_SecurityHeaders(0).HeaderBlock.MustUnderstand = "1";
SOAPMessage.get_SecurityHeaders(0).HeaderBlock.EncodingStyle = "http://www.w3.org/2003/05/soap-encoding";
}
Delphi:
if SOAPMessage.SecurityHeaderCount > 0 then
begin
SOAPMessage.SecurityHeaders[0].HeaderBlock.MustUnderstand := '1';
SOAPMessage.SecurityHeaders[0].HeaderBlock.EncodingStyle := 'http://www.w3.org/2003/05/soap-encoding';
end;
EncodingStyle for the body is set as shown in the code below:
C#:
if (SOAPMessage.Envelope.Body.EntryCount > 0)
{
SOAPMessage.Envelope.Body.get_Entries(0).EncodingStyle = "http://www.w3.org/2003/05/soap-encoding";
}
Delphi:
if SOAPMessage.Envelope.Body.EntryCount > 0 then
SOAPMessage.Envelope.Body.Entries[0].EncodingStyle := 'http://www.w3.org/2003/05/soap-encoding';
The Username token is added and its ID are set as follows:
C#:
TElXMLWSSEUsernameToken UsernameToken = new TElXMLWSSEUsernameToken();
SOAPMessage.get_SecurityHeaders(0).AddToken(UsernameToken);
UsernameToken.ID = "token-id";
Delphi:
UsernameToken := TElXMLWSSEUsernameToken.Create();
SOAPMessage.SecurityHeaders[0].AddToken(UsernameToken);
UsernameToken.ID := 'token-id';
To set and get "SOAP-SEC:id" attribute you can use the helper functions in SBXMLSOAPCore unit/namespace:
C#:
SBXMLSOAPCore.Unit.SOAPSecSetElementId(SOAPMessage.Envelope.Body.XMLElement, "body-id");
Delphi:
SBXMLSOAPCore.SOAPSecSetElementId(SOAPMessage.Envelope.Body.XMLElement, 'body-id');
To set and get "wsu:id" attribute you can use the helper functions in SBXMLWSSCore unit/namespace:
C#:
SBXMLWSSCore.Unit.WSUSetElementId(SOAPMessage.Envelope.Body.XMLElement, "body-id");
Delphi:
SBXMLWSSCore.WSUSetElementId(SOAPMessage.Envelope.Body.XMLElement, 'body-id');