2016-11-06 51 views
2

我提供了具有隻讀訪問權的Azure表存儲SAS令牌。我可以使用Azure存儲瀏覽器瀏覽它,而不會有任何問題。在試圖通過一個控制檯應用程序來訪問它,我能夠與SAS標記爲一TableEndpoint解析連接字符串,但是當我嘗試創建表客戶,我得到:Azure表存儲 - 從只讀SAS令牌創建連接字符串

System.InvalidOperationException:無憑據提供。 在Microsoft.WindowsAzure.Storage.CloudStorageAccount.CreateCloudTableClient()

這句法我用於連接字符串(替換爲值)是:

<add key="StorageConnectionString" value ="TableEndpoint=https://myaccount.table.core.windows.net/Table?sv=2015-04-05&amp;tn=Table&amp;sig=Signature&amp;se=2099-99-99T12%3A00%3A00Z&amp;sp=r" /> 

最後,我的控制檯應用程序代碼:

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString")); 

CloudTableClient tableClient = storageAccount.CreateCloudTableClient(); 

回答

5

我認爲你需要使用StorageCredentials類。下面是一個示例:

StorageCredentials accountSAS = new StorageCredentials(sasToken); 
CloudStorageAccount accountWithSAS = new CloudStorageAccount(accountSAS, "account-name", endpointSuffix: null, useHttps: true); 
CloudTableClient tableClientWithSAS = accountWithSAS.CreateCloudTableClient(); 
1

您可以參考下面的示例代碼中使用表服務端點和共享訪問簽名使用new CloudTableClient(Uri, StorageCredentials)初始化CloudTableClient類的新實例。

StorageCredentials creds = new StorageCredentials("your SAStoken"); 

CloudTableClient tableClient = new CloudTableClient(new Uri("your table endpoint"), creds);