在 Visual Studio 2022 年更改 Azure Subscription/tenant

Change Azure Subscription/tenant in Visual Studio 2022

我最近将我的 azure 函数项目从 .net core 3.1 迁移到 .net 6,因此迁移到 VS 2022。我是使用 Nuget Azure.Identity 包对其他 Azure 服务进行身份验证。当 运行 我的应用来自 windows 终端时,我可以选择正确的 subscription/tenant 使用 az account set -s oneOfMySubs。然后,我代码中的 defaultcredential class 按照 MS documentation.

的预期从链中获取正确的 CLI 凭证

但是,在 VS 中调试我的应用程序时,我收到错误消息 Login failed for user '<token-identified principal>'. The server is not currently configured to accept this token.

我怀疑 VS 选择了我帐户的默认订阅,这不是我 运行 我的连接服务所在的订阅。

如何更改 VS 2022 中使用的订阅上下文?

MS 似乎已经停用 Azure node in Server Explorer, ,我认为没有机会这样做。

感谢@juunas 的帮助。这就是我想出的结果,您的评论对实现目标非常有用。

var credential = new DefaultAzureCredential(new DefaultAzureCredentialOptions()
{
    VisualStudioTenantId = config.TenantId 
});
var tokenRequestContext = new Azure.Core.TokenRequestContext(new string[] { "https://management.core.windows.net/" });
var token = await credential.GetTokenAsync(tokenRequestContext);
var _credentials = new TokenCredentials(token.Token);

稍后,我将使用此令牌授权某些 Azure 服务

var client = new DataFactoryManagementClient(_credentials)

var factories = await client.Factories.ListByResourceGroupAsync(config.ResourceGroupName);