Ver Mensaje Individual
  #2  
Antiguo 29-12-2011
ruedabeat2003 ruedabeat2003 is offline
Miembro
 
Registrado: mar 2007
Posts: 66
Reputación: 18
ruedabeat2003 Va por buen camino
Encabezados=Header

Bien, pues el Header se hace con siguiente llamada:
Código:
   el_header2 := TWsseHeader.Create;

 el_header2.Username := 'TOAR0011165W7';
 el_header2.KerberosToken := 'TCY2SCOki4mo0EwgiA7X7tfmCHXqIP+dvAdHFFO/utZgui9hvfs7Zg5t2QVmFBw';     

 HTTPRIO1.SOAPHeaders.Send(el_header2);
He definido lo siguiente:
Código:
  TWsseHeader = class(TSOAPHeader)
  private
    FPassword: AnsiString;
    FUsername: AnsiString;
  public
    function ObjectToSOAP(RootNode, ParentNode: IXMLNode;
      const ObjConverter: IObjConverter;const Name, URI: InvString;
      ObjConvOpts:TObjectConvertOptions;out RefID: InvString): IXMLNode; override;
    property PasswordToken: AnsiString read FPasswordToken write FPasswordToken ;
    property Username: AnsiString read FUsername write FUsername;

const
WSSE_NS_PRE = 'wsse';
WSSE_NS_URI = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-ws-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="1';
UTIL_NS_PRE = 'wsu';
UTIL_NS_URI = 'schemas.xmlsoap.org/ws/2002/07/utility';
NSDELIM = ':';
{ TWsseHeader }
function TWsseHeader.ObjectToSOAP(RootNode, ParentNode: IXMLNode;
const ObjConverter: IObjConverter; const Name, URI: InvString;
ObjConvOpts: TObjectConvertOptions; out RefID: InvString): IXMLNode;
var
binsec: IXMLNode;
begin
ParentNode.AddChild(WSSE_NS_PRE + NSDelim + 'Security',WSSE_NS_URI);
Result := ParentNode.AddChild(WSSE_NS_PRE + NSDelim + 'UsernameToken',WSSE_NS_URI);
binsec := Result.AddChild(WSSE_NS_PRE + NSDelim + 'Username', WSSE_NS_URI);
binsec.Text := FUsername;
binsec := Result.AddChild(WSSE_NS_PRE + NSDelim + 'Password', WSSE_NS_URI);
binsec.Attributes['Type'] := 'http://docs.oasis-#PasswordText';
binsec.Text := FPasswordToken ;
end;
Y obtuve lo siguiente:
Código:
 <?xml version="1.0" ?> 
- <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <SOAP-ENV:Header>
  <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-ws-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="1" /> 
- <wsse:UsernameToken xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-ws-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="1">
  <wsse:Username>TOAR0011165W7</wsse:Username> 
  <wsse:Password Type="http://docs.oasis-#PasswordText">TCY2SCOki4mo0EwgiA7X7tfmCMHXqIP+dvAdHFFO/utZgui9hvfs7Zg5t2QVmFBw</wsse:Password> 
  </wsse:UsernameToken>
  </SOAP-ENV:Header>
- <SOAP-ENV:Body>
- <SOAP-ENV:SolicitarRecibirCoveServicio>
...
Ya lo unico que me falta es cerrar el Tag <wsse:Security> pues no esta su tag Final.

Que le falta a mi Metodo ???

Mañana otra vez a prueba y error.

Saludos.
Responder Con Cita