我使用 .NET API 在给定表上创建 SAS:
var tablePolicy = new SharedAccessTablePolicy()
{
SharedAccessExpiryTime = DateTime.Now.Add(TimeSpan.FromHours(2)),
Permissions = SharedAccessTablePermissions.Query
};
var permissions = new TablePermissions();
permissions.SharedAccessPolicies.Add("myPolicy", tablePolicy);
var credentials = new StorageCredentials(
"#my account here#",
"#my account secondary key here#");
var tableClient = new CloudTableClient(
new Uri("https://#my account here#.table.core.windows.net/"),
credentials);
var logTable = tableClient.GetTableReference("WADLogsTable");
logTable.SetPermissions(permissions);
var sas = logTable.GetSharedAccessSignature(tablePolicy, "myPolicy", null, null, null, null);
然后,我使用最后一个“sas”变量来创建凭据并执行查询:
var credentials = new StorageCredentials(sas);
var tableClient = new CloudTableClient(
new Uri("#my account URI here#"),
credentials);
var logTable = tableClient.GetTableReference("WADLogsTable");
var rows = logTable.ExecuteQuery(new TableQuery()).ToArray();
然后我收到 403(禁止)错误。
我做错了什么?
我相信您会收到此错误,因为您同时定义了两者SharedAccessTablePolicy
and Policy Name
创建 SAS 时。因此,如果您使用以下任一方法应该有效:
var sas = logTable.GetSharedAccessSignature(tablePolicy, null, null, null, null, null);
or
var sas = logTable.GetSharedAccessSignature(null, "myPolicy", null, null, null, null);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)