Asp.net Visual Studio 2019中具有多个帐户的DefaultAzureCredential异常

Asp.net Visual Studio 2019中具有多个帐户的DefaultAzureCredential异常,asp.net,visual-studio,azure,azure-web-app-service,identity,Asp.net,Visual Studio,Azure,Azure Web App Service,Identity,我遇到了以下情况,并最终解决了问题: 我有一个ASP.NET应用程序,它通过AzureKeyVaultConfigBuilder在运行时依赖于Azure密钥库。使用Visual Studio 2019从我的本地计算机运行,如果仅将我的工作(@microsoft.com)帐户添加到Visual Studio,它就能够访问密钥库。但是,如果我已将我的个人Microsoft帐户(@live.com)和我的工作帐户(@Microsoft.com)添加到Visual Studio中,则应用程序将尝试使用我

我遇到了以下情况,并最终解决了问题:

我有一个ASP.NET应用程序,它通过AzureKeyVaultConfigBuilder在运行时依赖于Azure密钥库。使用Visual Studio 2019从我的本地计算机运行,如果仅将我的工作(@microsoft.com)帐户添加到Visual Studio,它就能够访问密钥库。但是,如果我已将我的个人Microsoft帐户(@live.com)和我的工作帐户(@Microsoft.com)添加到Visual Studio中,则应用程序将尝试使用我的个人Microsoft帐户(@live.com)对密钥库进行身份验证,而它本应使用工作(@Microsoft.com)帐户

两个帐户都登录到Visual Studio后,我收到以下异常:

Configuration Error
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.

Parser Error Message: The configBuilder 'AzureKeyVault' failed while processing the configuration section 'appSettings'.: Error in Configuration Builder 'AzureKeyVault'::GetValue(AzureStorageConnectionString)

Source Error:


Line 32:     </builders>
Line 33:   </configBuilders>
Line 34:    <appSettings configBuilders="AzureKeyVault">
Line 35:        <add key="AzureStorageConnectionString" value="" />
Line 36:    </appSettings>

Source File: C:\<path to ASP.NET Web project>\web.config    Line: 34


Click here to show additional error information:

Exception Details: Azure.Identity.CredentialUnavailableException: DefaultAzureCredential failed to retrieve a token from the included credentials.
EnvironmentCredential authentication unavailable. Environment variables are not fully configured.
ManagedIdentityCredential authentication unavailable, no managed identity endpoint found.
SharedTokenCacheCredential authentication unavailable. Multiple accounts were found in the cache. Use username and tenant id to disambiguate.
配置错误
描述:处理服务此请求所需的配置文件时出错。请查看下面的特定错误详细信息,并适当修改配置文件。
分析器错误消息:configBuilder“AzureKeyVault”在处理配置节“appSettings”时失败:配置生成器“AzureKeyVault”中的错误:GetValue(AzureStorageConnectionString)
源错误:
第32行:
第33行:
第34行:
第35行:
第36行:
源文件:C:\\web.config行:34
单击此处显示其他错误信息:
异常详细信息:Azure.Identity.CredentialUnavailableException:DefaultAzureCredential未能从包含的凭据中检索令牌。
环境凭据身份验证不可用。未完全配置环境变量。
ManagedIdentityCredential身份验证不可用,未找到托管标识终结点。
SharedTokenCacheCredential身份验证不可用。在缓存中找到多个帐户。使用用户名和租户id消除歧义。

我经历了很多尝试和错误,在环境变量级别、Visual Studio级别和Azure CLI级别设置凭据,但在Visual Studio中注册多个帐户时,这些都没有得到遵守

问题在于Azure.Identity包,该包用于针对Azure for development环境对ASP.NET应用程序进行身份验证。我已经安装了软件包的1.1.1版。并发调用DefaultAzureCredential时出现多个问题。因此,更新到1.3.0版解决了我的问题,并得到了适当的尊重

DefaultAzureCredential用于从不同来源获取不同的身份验证令牌