From 9bec5acddcb6cf941f9d36d8aecf4da1d31e38e0 Mon Sep 17 00:00:00 2001 From: Christopher Scott Date: Wed, 18 Aug 2021 08:51:32 -0500 Subject: [PATCH 1/2] Produce more descriptive error for GenerateSasUri when using TokenCredential --- sdk/tables/Azure.Data.Tables/src/TableClient.cs | 4 ++++ sdk/tables/Azure.Data.Tables/src/TableServiceClient.cs | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/sdk/tables/Azure.Data.Tables/src/TableClient.cs b/sdk/tables/Azure.Data.Tables/src/TableClient.cs index 22f4c74cf079..0df17574eacc 100644 --- a/sdk/tables/Azure.Data.Tables/src/TableClient.cs +++ b/sdk/tables/Azure.Data.Tables/src/TableClient.cs @@ -1405,6 +1405,10 @@ public virtual Uri GenerateSasUri(TableSasPermissions permissions, DateTimeOffse public virtual Uri GenerateSasUri( TableSasBuilder builder) { + if (SharedKeyCredential == null) + { + throw new InvalidOperationException($"{nameof(GenerateSasUri)} requires a credential other than {nameof(TokenCredential)} in order to sign the SAS token."); + } builder = builder ?? throw Errors.ArgumentNull(nameof(builder)); if (!builder.TableName.Equals(Name, StringComparison.InvariantCulture)) { diff --git a/sdk/tables/Azure.Data.Tables/src/TableServiceClient.cs b/sdk/tables/Azure.Data.Tables/src/TableServiceClient.cs index 6b54a1da23cf..5339b329a2b5 100644 --- a/sdk/tables/Azure.Data.Tables/src/TableServiceClient.cs +++ b/sdk/tables/Azure.Data.Tables/src/TableServiceClient.cs @@ -911,6 +911,10 @@ public virtual Uri GenerateSasUri( TableAccountSasBuilder builder) { Argument.AssertNotNull(builder, nameof(builder)); + if (SharedKeyCredential == null) + { + throw new InvalidOperationException($"{nameof(GenerateSasUri)} requires a credential other than {nameof(TokenCredential)} in order to sign the SAS token."); + } TableUriBuilder sasUri = new(_endpoint); sasUri.Query = builder.ToSasQueryParameters(SharedKeyCredential).ToString(); From 9c7b61430f809ca2a7f8ce46e421a15cbc98687d Mon Sep 17 00:00:00 2001 From: Christopher Scott Date: Wed, 18 Aug 2021 09:51:07 -0500 Subject: [PATCH 2/2] tweak exception message --- sdk/tables/Azure.Data.Tables/src/TableClient.cs | 2 +- sdk/tables/Azure.Data.Tables/src/TableServiceClient.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/tables/Azure.Data.Tables/src/TableClient.cs b/sdk/tables/Azure.Data.Tables/src/TableClient.cs index 0df17574eacc..1dddd3280040 100644 --- a/sdk/tables/Azure.Data.Tables/src/TableClient.cs +++ b/sdk/tables/Azure.Data.Tables/src/TableClient.cs @@ -1407,7 +1407,7 @@ public virtual Uri GenerateSasUri( { if (SharedKeyCredential == null) { - throw new InvalidOperationException($"{nameof(GenerateSasUri)} requires a credential other than {nameof(TokenCredential)} in order to sign the SAS token."); + throw new InvalidOperationException($"{nameof(GenerateSasUri)} requires that this client be constructed with a credential type other than {nameof(TokenCredential)} in order to sign the SAS token."); } builder = builder ?? throw Errors.ArgumentNull(nameof(builder)); if (!builder.TableName.Equals(Name, StringComparison.InvariantCulture)) diff --git a/sdk/tables/Azure.Data.Tables/src/TableServiceClient.cs b/sdk/tables/Azure.Data.Tables/src/TableServiceClient.cs index 5339b329a2b5..6b7feaec156f 100644 --- a/sdk/tables/Azure.Data.Tables/src/TableServiceClient.cs +++ b/sdk/tables/Azure.Data.Tables/src/TableServiceClient.cs @@ -913,7 +913,7 @@ public virtual Uri GenerateSasUri( Argument.AssertNotNull(builder, nameof(builder)); if (SharedKeyCredential == null) { - throw new InvalidOperationException($"{nameof(GenerateSasUri)} requires a credential other than {nameof(TokenCredential)} in order to sign the SAS token."); + throw new InvalidOperationException($"{nameof(GenerateSasUri)} requires that this client be constructed with a credential type other than {nameof(TokenCredential)} in order to sign the SAS token."); } TableUriBuilder sasUri = new(_endpoint);