从 Asp.Net 网站外部访问 Azure Blob 存储

Posted

技术标签:

【中文标题】从 Asp.Net 网站外部访问 Azure Blob 存储【英文标题】:Access Azure Blob Storage externally from an Asp.Net website 【发布时间】:2021-01-14 16:34:24 【问题描述】:

我需要在 IIS 中的现有经典 ASP .NET 网站中添加 Azure Blob 存储功能。

网站:

.NET Framework 与 Forms 身份验证,启用角色。 托管环境:非 Azure 数据中心

角色

角色 1:HeadOffice(公司总部的用户)

角色 2:CreditCustomer(所有信用客户都分配了这个角色)

文件夹

    HO - 授予角色 1 的访问权限。角色 1 访问多个 Web 表单。 客户 - 授予角色 2 的访问权限。角色 2 访问多个 Web 表单。

需要的功能

从外部访问 Azure Blob 存储:

1. HO - 可以读写。

2。客户 - 可以阅读/下载。

需要客户 1 无法访问客户 2 的 blob 的功能,反之亦然。

可以为每个客户分配额外的角色。

这是一篇 2012 年的文章,我认为可以对其进行修改以供我使用。

https://www.dotnetcurry.com/windows-azure/803/blob-storage-aspnet-windows-azure

我应该使用上述内容还是有更新? 要么 我要探索 REST API 吗?

无论我做什么,我都打算将它托管在当前托管网站的数据中心(而不是 Azure)中。

非常感谢!

【问题讨论】:

.net 框架版本? .NET 框架 4 我遇到了同样的问题,我正在尝试使用 microsoft.graph 在请求 blob 之前通过 AD 登录用户 - 如果它有效,会通知您 你的cors配置正确吗? 【参考方案1】:

您可以将Microsoft.Azure.Storage nuget 用于.NET Framework。该包已被弃用,并被拆分为较小的包,如 Azure.Storage.QueueAzure.Storage.Blobs 等。因此,您可以通过创建 .NET Standard 单独库并在项目中引用该库来使用较新的包。

https://www.nuget.org/packages/microsoft.azure.storage.blob/

除了 nuget,您还可以使用 REST API。

https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob

许可: 您可以为不同的权限集创建 SAS(共享访问签名),并根据角色使用不同的基于 SAS 的连接字符串。

【讨论】:

他想要角色库访问,而不是 sas 访问 - 我认为 SAS 访问相对清楚如何做到这一点

以上是关于从 Asp.Net 网站外部访问 Azure Blob 存储的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 asp.net mvc 从 azure 获取访问令牌

从 ASP.NET 应用程序访问 Azure 存储帐户文件共享

从 ASP.NET 将网站添加到 SharePoint Online 失败

Asp.Net - 将处理卸载到外部应用程序

在 ASP.NET Azure 网站上使用 Ghostscript.Net

ASP.NET Identity:在 Azure 网站上使用 GeneratePasswordResetToken