2016-11-06 17 views
2

私はAzureテーブルストアのSASトークンを読み取り専用アクセスで提供しました。 Azure Storage Explorerを使用して問題なく閲覧することができます。コンソールアプリケーションを介してアクセスしようとすると、私はTableEndpointとしてSASトークンと接続文字列を解析することが、私がしようとすると、表のクライアントを作成するとき、私は得る: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); 
関連する問題