У меня есть клиентское приложение .Net Standard, работающее на UWP.
Мое клиентское приложение связывается с сервером, который генерирует ключ sas, следующим образом:
var myPrivateStorageAccount = CloudStorageAccount.Parse(mystorageAccountKey);
var myPrivateTableClient = myPrivateStorageAccount.CreateCloudTableClient();
SharedAccessTablePolicy pol = new SharedAccessTablePolicy()
{
SharedAccessExpiryTime = DateTime.UtcNow.AddMinutes(59),
Permissions = SharedAccessTablePermissions.Query | SharedAccessTablePermissions.Add
};
CloudTable myPrivateTable = myPrivateTableClient.GetTableReference(tableName);
String sas = myPrivateTable.GetSharedAccessSignature(pol);
return sas;
Затем мое клиентское приложение выполняет следующее:
StorageCredentials creds = new StorageCredentials(sas);
this.tableClient = new CloudTableClient(tableServiceURI, creds);
this.table = tableClient.GetTableReference(tableName);
TableQuery<DynamicTableEntity> projectionQuery = new TableQuery<DynamicTableEntity>().Select(new string[] { "DocumentName" }).Where(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, cc));
var res = await table.ExecuteQuerySegmentedAsync<DynamicTableEntity>(projectionQuery, null);
и получает следующую ошибку:
Серверу не удалось аутентифицировать запрос. Убедитесь, что значение
Заголовок авторизации сформирован правильно, включая подпись. стер
является обязательным. Не может быть пустым
но так как это табличное хранилище Я не думаю, что sr требуется
и мой ключ SAS выглядит нормально для меня:
* * Тысяча двадцать-один? SV = 2018-03-28 & т = MyTable & сиг = RandomSig151235341543 & й = 2019-01-17T12% 3A00% 3A28Z & SE = 2019-01-17T12% 3A59% 3A28Z & зр = ра * * одна тысяча двадцать-две
так в чем здесь проблема?