从 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.Queue
、Azure.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 失败