diff --git a/sdk/storage/azure-storage-common/src/storage_credential.cpp b/sdk/storage/azure-storage-common/src/storage_credential.cpp index a0fc51b14..e5b588273 100644 --- a/sdk/storage/azure-storage-common/src/storage_credential.cpp +++ b/sdk/storage/azure-storage-common/src/storage_credential.cpp @@ -96,10 +96,18 @@ namespace Azure { namespace Storage { namespace _internal { std::string sas = getWithDefault(connectionStringMap, "SharedAccessSignature"); if (!sas.empty()) { - connectionStringParts.BlobServiceUrl.AppendQueryParameters(sas); - connectionStringParts.DataLakeServiceUrl.AppendQueryParameters(sas); - connectionStringParts.FileServiceUrl.AppendQueryParameters(sas); - connectionStringParts.QueueServiceUrl.AppendQueryParameters(sas); + if (sas[0] != '?') + { + sas = '?' + sas; + } + connectionStringParts.BlobServiceUrl + = Azure::Core::Url(connectionStringParts.BlobServiceUrl.GetAbsoluteUrl() + sas); + connectionStringParts.DataLakeServiceUrl + = Azure::Core::Url(connectionStringParts.DataLakeServiceUrl.GetAbsoluteUrl() + sas); + connectionStringParts.FileServiceUrl + = Azure::Core::Url(connectionStringParts.FileServiceUrl.GetAbsoluteUrl() + sas); + connectionStringParts.QueueServiceUrl + = Azure::Core::Url(connectionStringParts.QueueServiceUrl.GetAbsoluteUrl() + sas); } return connectionStringParts;