【发布时间】:2016-07-09 11:05:11
【问题描述】:
我有两个函数:GrantSASAccess 和 RevokeSASAccess。我授予访问权限(通过生成 SAS)将文件上传到 blob。当用户声明“好的,我完成了!”我撤销 SAS 访问权限。但... 在撤销 SAS 片刻之后,用户仍然可以访问上传文件。只有在 3-5 秒后,它才能正确阻塞。为什么会这样?如何预防?
public async Task GrantSASAccess(CloudBlobContainer container)
{
BlobContainerPermissions permissions = await container.GetPermissionsAsync();
permissions.SharedAccessPolicies[container.Name] = new SharedAccessBlobPolicy()
{
Permissions = SharedAccessBlobPermissions.Write,
SharedAccessExpiryTime = _dateTimeService.GetUtcNow().AddMinutes(Core.ConfigurationHelper.GetSASExpirationTime())
};
await container.SetPermissionsAsync(permissions);
}
public async Task RevokeSASAccess(StorageCredentials storageCredentials, string containerName, string policyName)
{
CloudBlobContainer container = GetContainerReference(storageCredentials, containerName);
BlobContainerPermissions permissions = container.GetPermissions();
permissions.SharedAccessPolicies.Remove(containerName);
await container.SetPermissionsAsync(permissions);
}
【问题讨论】:
标签: .net azure azure-blob-storage