|  | 
Chilkat  HOME  Android™  AutoIt  C  C#  C++  Chilkat2-Python  CkPython  Classic ASP  DataFlex  Delphi DLL  Go  Java  Node.js  Objective-C  PHP Extension  Perl  PowerBuilder  PowerShell  PureBasic  Ruby  SQL Server  Swift  Tcl  Unicode C  Unicode C++  VB.NET  VBScript  Visual Basic 6.0  Visual FoxPro  Xojo Plugin
| (Delphi DLL) How to Generate an Azure Service Bus Shared Access Signature (SAS)Demonstrates generating and using an Azure Service Bus Shared Access Signature (SAS). Note: This example requires Chilkat v9.5.0.65 or greater. 
 uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, FileAccess, StringBuilder, AuthAzureSAS, CkDateTime; ... procedure TForm1.Button1Click(Sender: TObject); var authSas: HCkAuthAzureSAS; dtExpiry: HCkDateTime; sbResourceUri: HCkStringBuilder; sasToken: PWideChar; fac: HCkFileAccess; begin // Note: Requires Chilkat v9.5.0.65 or greater. // This requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // ------------------------------------------------------------------- // Create a Shared Access Signature (SAS) token for Azure Service Bus. // ------------------------------------------------------------------- authSas := CkAuthAzureSAS_Create(); CkAuthAzureSAS_putAccessKey(authSas,'AzureServiceBus_PrimaryKey'); // The SAS token for Service Bus will look like this: // (The order of params will be different. The order does not matter.) // sig=<signature-string>&se=<expiry>&skn=<keyName>&sr=<URL-encoded-resourceURI> // Specify the format of the string to sign. CkAuthAzureSAS_putStringToSign(authSas,'resourceURI,expiry'); // Create an expiry to 30 days in the future. dtExpiry := CkDateTime_Create(); CkDateTime_SetFromCurrentSystemTime(dtExpiry); CkDateTime_AddDays(dtExpiry,30); CkAuthAzureSAS_SetTokenParam(authSas,'expiry','se',CkDateTime__getAsUnixTimeStr(dtExpiry,True)); // Set the skn (keyname) // This example uses the key "RootManageSharedAccessKey". This give full access. // In a typical scenario, you would create a new Azure key (for the service bus) // in the Azure portal, such that the key has limited permissions. This would // allow you to give the SAS token to others for specific access for some period of time. CkAuthAzureSAS_SetTokenParam(authSas,'keyName','skn','RootManageSharedAccessKey'); // Set the URL-encoded-resourceURI sbResourceUri := CkStringBuilder_Create(); CkStringBuilder_Append(sbResourceUri,'https://<yournamespace>.servicebus.windows.net/'); CkStringBuilder_Encode(sbResourceUri,'url','utf-8'); CkAuthAzureSAS_SetTokenParam(authSas,'resourceURI','sr',CkStringBuilder__getAsString(sbResourceUri)); // Generate the SAS token. sasToken := CkAuthAzureSAS__generateToken(authSas); if (CkAuthAzureSAS_getLastMethodSuccess(authSas) <> True) then begin Memo1.Lines.Add(CkAuthAzureSAS__lastErrorText(authSas)); Exit; end; Memo1.Lines.Add('SAS token: ' + sasToken); // Save the SAS token to a file. // We can then use this pre-generated token for future Service Bus operations. fac := CkFileAccess_Create(); CkFileAccess_WriteEntireTextFile(fac,'qa_data/tokens/serviceBusSas.txt',sasToken,'utf-8',False); CkAuthAzureSAS_Dispose(authSas); CkDateTime_Dispose(dtExpiry); CkStringBuilder_Dispose(sbResourceUri); CkFileAccess_Dispose(fac); end; | ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.