|  | 
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
| (Unicode C) 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. 
 #include <C_CkAuthAzureSASW.h> #include <C_CkDateTimeW.h> #include <C_CkStringBuilderW.h> #include <C_CkFileAccessW.h> void ChilkatSample(void) { HCkAuthAzureSASW authSas; HCkDateTimeW dtExpiry; HCkStringBuilderW sbResourceUri; const wchar_t *sasToken; HCkFileAccessW fac; // 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 = CkAuthAzureSASW_Create(); CkAuthAzureSASW_putAccessKey(authSas,L"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. CkAuthAzureSASW_putStringToSign(authSas,L"resourceURI,expiry"); // Create an expiry to 30 days in the future. dtExpiry = CkDateTimeW_Create(); CkDateTimeW_SetFromCurrentSystemTime(dtExpiry); CkDateTimeW_AddDays(dtExpiry,30); CkAuthAzureSASW_SetTokenParam(authSas,L"expiry",L"se",CkDateTimeW_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. CkAuthAzureSASW_SetTokenParam(authSas,L"keyName",L"skn",L"RootManageSharedAccessKey"); // Set the URL-encoded-resourceURI sbResourceUri = CkStringBuilderW_Create(); CkStringBuilderW_Append(sbResourceUri,L"https://<yournamespace>.servicebus.windows.net/"); CkStringBuilderW_Encode(sbResourceUri,L"url",L"utf-8"); CkAuthAzureSASW_SetTokenParam(authSas,L"resourceURI",L"sr",CkStringBuilderW_getAsString(sbResourceUri)); // Generate the SAS token. sasToken = CkAuthAzureSASW_generateToken(authSas); if (CkAuthAzureSASW_getLastMethodSuccess(authSas) != TRUE) { wprintf(L"%s\n",CkAuthAzureSASW_lastErrorText(authSas)); CkAuthAzureSASW_Dispose(authSas); CkDateTimeW_Dispose(dtExpiry); CkStringBuilderW_Dispose(sbResourceUri); return; } wprintf(L"SAS token: %s\n",sasToken); // Save the SAS token to a file. // We can then use this pre-generated token for future Service Bus operations. fac = CkFileAccessW_Create(); CkFileAccessW_WriteEntireTextFile(fac,L"qa_data/tokens/serviceBusSas.txt",sasToken,L"utf-8",FALSE); CkAuthAzureSASW_Dispose(authSas); CkDateTimeW_Dispose(dtExpiry); CkStringBuilderW_Dispose(sbResourceUri); CkFileAccessW_Dispose(fac); } | ||||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.