Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Delphi ActiveX) SOAP WS-Security Username AuthenticationDemonstrates creating SOAP XML for WS-Security Username Authentication. The client user name and password are encapsulated in a WS-Security <wsse:UsernameToken>.
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB; ... procedure TForm1.Button1Click(Sender: TObject); var xml: TChilkatXml; dt: TCkDateTime; bLocal: Integer; created: WideString; wsse1: TChilkatXml; wsse2: TChilkatXml; xHeader: IChilkatXml; begin // Generate this XML with the code that follows: // <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> // <soap:Header> // <wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2003/06/secext"> // <wsse:UsernameToken wsu:Id="sample" // xmlns:wsu="http://schemas.xmlsoap.org/ws/2003/06/utility"> // <wsse:Username>sample</wsse:Username> // <wsse:Password Type="wsse:PasswordText">oracle</wsse:Password> // <wsu:Created>2004-05-19T08:44:51Z</wsu:Created> // </wsse:UsernameToken> // </wsse:Security> // <wsse:Security soap:actor="oracle" // xmlns:wsse="http://schemas.xmlsoap.org/ws/2003/06/secext"> // <wsse:UsernameToken wsu:Id="oracle" // xmlns:wsu="http://schemas.xmlsoap.org/ws/2003/06/utility"> // <wsse:Username>myUsername</wsse:Username> // <wsse:Password Type="wsse:PasswordText">myPassword</wsse:Password> // <wsu:Created>2004-05-19T08:46:04Z</wsu:Created> // </wsse:UsernameToken> // </wsse:Security> // </soap:Header> // <soap:Body> // <getHello xmlns="http://www.oracle.com"/> // </soap:Body> // </soap:Envelope> // // First build the outer housing: xml := TChilkatXml.Create(Self); xml.Tag := 'soap:Envelope'; xml.AddAttribute('xmlns:soap','http://schemas.xmlsoap.org/soap/envelope/'); xml.UpdateChildContent('soap:Header',''); xml.UpdateAttrAt('soap:Body|getHello',1,'xmlns','http://www.oracle.com'); // Get the current date/time in a string with this format: 2004-05-19T08:46:04Z dt := TCkDateTime.Create(Self); dt.SetFromCurrentSystemTime(); bLocal := 0; created := dt.GetAsTimestamp(bLocal); // Now build each UsernameToken block: wsse1 := TChilkatXml.Create(Self); wsse1.Tag := 'wsse:Security'; wsse1.AddAttribute('xmlns:wsse','http://schemas.xmlsoap.org/ws/2003/06/secext'); wsse1.UpdateAttrAt('wsse:UsernameToken',1,'wsu:Id','sample'); wsse1.UpdateAttrAt('wsse:UsernameToken',1,'xmlns:wsu','http://schemas.xmlsoap.org/ws/2003/06/utility'); wsse1.UpdateChildContent('wsse:UsernameToken|wsse:Username','sample'); wsse1.UpdateAttrAt('wsse:UsernameToken|wsse:Password',1,'Type','wsse:PasswordText'); wsse1.UpdateChildContent('wsse:UsernameToken|wsse:Password','oracle'); wsse1.UpdateChildContent('wsse:UsernameToken|wsu:Created',created); wsse2 := TChilkatXml.Create(Self); wsse2.Tag := 'wsse:Security'; wsse2.AddAttribute('soap:actor','oracle'); wsse2.AddAttribute('xmlns:wsse','http://schemas.xmlsoap.org/ws/2003/06/secext'); wsse2.UpdateAttrAt('wsse:UsernameToken',1,'wsu:Id','oracle'); wsse2.UpdateAttrAt('wsse:UsernameToken',1,'xmlns:wsu','http://schemas.xmlsoap.org/ws/2003/06/utility'); wsse2.UpdateChildContent('wsse:UsernameToken|wsse:Username','oracle'); wsse2.UpdateAttrAt('wsse:UsernameToken|wsse:Password',1,'Type','wsse:PasswordText'); wsse2.UpdateChildContent('wsse:UsernameToken|wsse:Password','oracle'); wsse2.UpdateChildContent('wsse:UsernameToken|wsu:Created',created); // Insert the UsernameToken blocks: xHeader := xml.GetChildWithTag('soap:Header'); xHeader.AddChildTree(wsse1.ControlInterface); xHeader.AddChildTree(wsse2.ControlInterface); // Show the XML: Memo1.Lines.Add(xml.GetXml()); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.