使用Azure blob存储,我们需要应用程序的用户特定文件访问,有没有办法实现?

时间:2016-07-05 13:40:12

标签: asp.net azure file-permissions azure-storage-blobs user-permissions

我们尝试使用blob存储将我们的应用程序的文件和文档保存在Azure的blob存储中,并且我们要求用户特定的文件访问。此时任何人都可以看到任何文件。我不想这样做。用户只有在他们尝试查看或访问的其他文件应该被重定向到登录页面时才能访问自己的文件,并且应该向他们显示您没有访问权限。

如何使用Azure的blob存储实现这一目标?我试图找到一些解决方案,但是如果有人可以提供帮助那么我将无法提供帮助。

2 个答案:

答案 0 :(得分:2)

您应该能够使用共享访问签名,结合现有应用程序的用户存储,身份验证和授权机制来控制Azure blob访问:

http://www.dotnetcurry.com/windows-azure/901/protect-azure-blob-storage-shared-access-signature

您可以根据应用需要调整超时,存储访问键等。

答案 1 :(得分:2)

以下是我们在申请中的表现。请查看是否可以在您的应用程序中使用此方法。

在我们的应用程序中,为每个用户分配一个唯一的ID(GUID)。当用户注册时,我们创建一个blob容器,并将此blob容器的名称设置为用户的id。该用户的所有文件都保存在该blob容器中。当用户需要访问这些文件时,我们只需为具有适当权限的blob容器创建共享访问签名(SAS),并与该用户共享该SAS(如Henry在其回答中所述)。

根据用户数量,您可能还需要考虑在多个存储帐户之间对这些容器进行负载平衡。他们实现这一点的方式就是当用户注册时,我们从存储帐户池中随机分配一个存储帐户,并在该存储帐户中创建该用户的blob容器。