我最近将我的azure函数项目从.net core 3.1迁移到.net 6,从而迁移到VS 2022。我正在使用NugetAzure.Identity包对其他Azure服务进行身份验证。从windows终端运行我的应用程序时,我可以使用选择正确的订阅/租户CCD_ 1。然后,我的代码中的defaultcredential类从链中获取正确的CLI凭据,正如MS文档中所期望的那样。
然而,当在VS中调试我的应用程序时,我收到错误消息Login failed for user '<token-identified principal>'. The server is not currently configured to accept this token.
我怀疑,VS获取了我帐户的默认订阅,这不是我运行连接服务的订阅。
如何更改VS 2022中使用的订阅上下文
由于微软似乎已经退役了服务器资源管理器中的Azure节点,我认为没有机会这么做
感谢@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);