是否可以使用托管标识从 C# 控制台代码连接 Azure 文件共享(存储帐户)

Posted

技术标签:

【中文标题】是否可以使用托管标识从 C# 控制台代码连接 Azure 文件共享(存储帐户)【英文标题】:Is it possible to connect Azure File share (Storage account) from C# console code using Managed Identity 【发布时间】:2021-12-05 16:28:56 【问题描述】:

我试图使用我的 C# 代码将文件上传到 Azure 文件共享。使用托管标识。代码将部署到具有 Storge 帐户托管标识的 Azure VM。如何通过 DefaultAzureCredential 使用控制台应用程序进行连接。请帮助我。

【问题讨论】:

请提供足够的代码,以便其他人更好地理解或重现问题。 Uri url = new Uri("XXXXXXX.file.core.windows.net/share1/stage/1/2"); var cred = new DefaultAzureCredential(); ShareFileClient client = new ShareFileClient() 。我正在尝试使用 DefaultAzureCredential 访问此路径以上传我的文件从控制台应用程序到 Azure fileStorage。但是,我没有任何选项可以将 DefaultAzureCredential 与 ShareFileClient 类一起保留。 【参考方案1】:

查看ShareServiceClient 的构造函数选项,我认为至少在 SDK 版本 12.8.0 中无法使用 Azure AD 连接到您的文件共享服务(因此排除了使用托管标识)。

您需要做的是使用共享访问签名,或使用存储帐户名称/密钥或指定存储帐户连接字符串来连接到您的文件服务。

【讨论】:

以上是关于是否可以使用托管标识从 C# 控制台代码连接 Azure 文件共享(存储帐户)的主要内容,如果未能解决你的问题,请参考以下文章

具有用户分配的托管标识的 Azure SQL 数据库连接池

托管代码中未声明的标识符错误...Visual C#

通过托管标识从 c# Azure 函数检索配置值的 Azure 应用程序配置不起作用

C# - 具有托管服务标识的 Azure 存储 [关闭]

托管 C# 代码未发生非托管调用

如何从 C# 导入和使用非托管 C++ 类?