![]() |
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
(SQL Server) 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.
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls. -- CREATE PROCEDURE ChilkatSample AS BEGIN DECLARE @hr int DECLARE @iTmp0 int -- Important: Do not use nvarchar(max). See the warning about using nvarchar(max). DECLARE @sTmp0 nvarchar(4000) -- 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. -- ------------------------------------------------------------------- DECLARE @authSas int -- Use "Chilkat_9_5_0.AuthAzureSAS" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.AuthAzureSAS', @authSas OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END EXEC sp_OASetProperty @authSas, 'AccessKey', '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. EXEC sp_OASetProperty @authSas, 'StringToSign', 'resourceURI,expiry' -- Create an expiry to 30 days in the future. DECLARE @dtExpiry int -- Use "Chilkat_9_5_0.CkDateTime" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.CkDateTime', @dtExpiry OUT DECLARE @success int EXEC sp_OAMethod @dtExpiry, 'SetFromCurrentSystemTime', @success OUT EXEC sp_OAMethod @dtExpiry, 'AddDays', @success OUT, 30 EXEC sp_OAMethod @dtExpiry, 'GetAsUnixTimeStr', @sTmp0 OUT, 1 EXEC sp_OAMethod @authSas, 'SetTokenParam', @success OUT, 'expiry', 'se', @sTmp0 -- 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. EXEC sp_OAMethod @authSas, 'SetTokenParam', @success OUT, 'keyName', 'skn', 'RootManageSharedAccessKey' -- Set the URL-encoded-resourceURI DECLARE @sbResourceUri int -- Use "Chilkat_9_5_0.StringBuilder" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sbResourceUri OUT EXEC sp_OAMethod @sbResourceUri, 'Append', @success OUT, 'https://<yournamespace>.servicebus.windows.net/' EXEC sp_OAMethod @sbResourceUri, 'Encode', @success OUT, 'url', 'utf-8' EXEC sp_OAMethod @sbResourceUri, 'GetAsString', @sTmp0 OUT EXEC sp_OAMethod @authSas, 'SetTokenParam', @success OUT, 'resourceURI', 'sr', @sTmp0 -- Generate the SAS token. DECLARE @sasToken nvarchar(4000) EXEC sp_OAMethod @authSas, 'GenerateToken', @sasToken OUT EXEC sp_OAGetProperty @authSas, 'LastMethodSuccess', @iTmp0 OUT IF @iTmp0 <> 1 BEGIN EXEC sp_OAGetProperty @authSas, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @authSas EXEC @hr = sp_OADestroy @dtExpiry EXEC @hr = sp_OADestroy @sbResourceUri RETURN END PRINT 'SAS token: ' + @sasToken -- Save the SAS token to a file. -- We can then use this pre-generated token for future Service Bus operations. DECLARE @fac int -- Use "Chilkat_9_5_0.FileAccess" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.FileAccess', @fac OUT EXEC sp_OAMethod @fac, 'WriteEntireTextFile', @success OUT, 'qa_data/tokens/serviceBusSas.txt', @sasToken, 'utf-8', 0 EXEC @hr = sp_OADestroy @authSas EXEC @hr = sp_OADestroy @dtExpiry EXEC @hr = sp_OADestroy @sbResourceUri EXEC @hr = sp_OADestroy @fac END GO |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.