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
(DataFlex) 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>.
Use ChilkatAx-win32.pkg Procedure Test Handle hoXml Boolean iSuccess Handle hoDt Boolean iBLocal String sCreated Variant vWsse1 Handle hoWsse1 Variant vWsse2 Handle hoWsse2 Variant vXHeader Handle hoXHeader String sTemp1 // 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: Get Create (RefClass(cComChilkatXml)) To hoXml If (Not(IsComObjectCreated(hoXml))) Begin Send CreateComObject of hoXml End Set ComTag Of hoXml To "soap:Envelope" Get ComAddAttribute Of hoXml "xmlns:soap" "http://schemas.xmlsoap.org/soap/envelope/" To iSuccess Send ComUpdateChildContent To hoXml "soap:Header" "" Get ComUpdateAttrAt Of hoXml "soap:Body|getHello" True "xmlns" "http://www.oracle.com" To iSuccess // Get the current date/time in a string with this format: 2004-05-19T08:46:04Z Get Create (RefClass(cComCkDateTime)) To hoDt If (Not(IsComObjectCreated(hoDt))) Begin Send CreateComObject of hoDt End Get ComSetFromCurrentSystemTime Of hoDt To iSuccess Move False To iBLocal Get ComGetAsTimestamp Of hoDt iBLocal To sCreated // Now build each UsernameToken block: Get Create (RefClass(cComChilkatXml)) To hoWsse1 If (Not(IsComObjectCreated(hoWsse1))) Begin Send CreateComObject of hoWsse1 End Set ComTag Of hoWsse1 To "wsse:Security" Get ComAddAttribute Of hoWsse1 "xmlns:wsse" "http://schemas.xmlsoap.org/ws/2003/06/secext" To iSuccess Get ComUpdateAttrAt Of hoWsse1 "wsse:UsernameToken" True "wsu:Id" "sample" To iSuccess Get ComUpdateAttrAt Of hoWsse1 "wsse:UsernameToken" True "xmlns:wsu" "http://schemas.xmlsoap.org/ws/2003/06/utility" To iSuccess Send ComUpdateChildContent To hoWsse1 "wsse:UsernameToken|wsse:Username" "sample" Get ComUpdateAttrAt Of hoWsse1 "wsse:UsernameToken|wsse:Password" True "Type" "wsse:PasswordText" To iSuccess Send ComUpdateChildContent To hoWsse1 "wsse:UsernameToken|wsse:Password" "oracle" Send ComUpdateChildContent To hoWsse1 "wsse:UsernameToken|wsu:Created" sCreated Get Create (RefClass(cComChilkatXml)) To hoWsse2 If (Not(IsComObjectCreated(hoWsse2))) Begin Send CreateComObject of hoWsse2 End Set ComTag Of hoWsse2 To "wsse:Security" Get ComAddAttribute Of hoWsse2 "soap:actor" "oracle" To iSuccess Get ComAddAttribute Of hoWsse2 "xmlns:wsse" "http://schemas.xmlsoap.org/ws/2003/06/secext" To iSuccess Get ComUpdateAttrAt Of hoWsse2 "wsse:UsernameToken" True "wsu:Id" "oracle" To iSuccess Get ComUpdateAttrAt Of hoWsse2 "wsse:UsernameToken" True "xmlns:wsu" "http://schemas.xmlsoap.org/ws/2003/06/utility" To iSuccess Send ComUpdateChildContent To hoWsse2 "wsse:UsernameToken|wsse:Username" "oracle" Get ComUpdateAttrAt Of hoWsse2 "wsse:UsernameToken|wsse:Password" True "Type" "wsse:PasswordText" To iSuccess Send ComUpdateChildContent To hoWsse2 "wsse:UsernameToken|wsse:Password" "oracle" Send ComUpdateChildContent To hoWsse2 "wsse:UsernameToken|wsu:Created" sCreated // Insert the UsernameToken blocks: Get ComGetChildWithTag Of hoXml "soap:Header" To vXHeader If (IsComObject(vXHeader)) Begin Get Create (RefClass(cComChilkatXml)) To hoXHeader Set pvComObject Of hoXHeader To vXHeader End Get pvComObject of hoWsse1 to vWsse1 Get ComAddChildTree Of hoXHeader vWsse1 To iSuccess Get pvComObject of hoWsse2 to vWsse2 Get ComAddChildTree Of hoXHeader vWsse2 To iSuccess Send Destroy of hoXHeader // Show the XML: Get ComGetXml Of hoXml To sTemp1 Showln sTemp1 End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.