ASP.NET Core集成Azure Key Vault时无法找到Microsoft.Azure.Services.AppAuthentication NuGet包
解决ASP.NET Core中找不到Microsoft.Azure.Services.AppAuthentication包的问题
嘿,我之前刚好踩过这个坑!这个问题的核心原因是Microsoft.Azure.Services.AppAuthentication已经被官方弃用了,现在ASP.NET Core集成Azure Key Vault的官方推荐方案是使用Azure.Identity包来替代它。
下面是具体的解决步骤:
第一步:安装正确的NuGet包
卸载任何已安装的Microsoft.Azure.Services.AppAuthentication包,然后安装Azure.Identity:# 使用NuGet包管理器控制台 Install-Package Azure.Identity # 或者使用.NET CLI dotnet add package Azure.Identity第二步:替换原有的认证代码
原来教程里的AzureServiceTokenProvider已经不再推荐,我们用DefaultAzureCredential来替代它,这个类会自动适配不同环境的认证方式(本地开发用Azure CLI/Visual Studio凭据,生产环境用托管标识),非常灵活。示例代码如下:using Azure.Identity; using Azure.Security.KeyVault.Secrets; // 初始化Key Vault客户端 var keyVaultUri = new Uri("https://your-key-vault-name.vault.azure.net/"); var credential = new DefaultAzureCredential(); var secretClient = new SecretClient(keyVaultUri, credential); // 获取Key Vault中的密钥 var secretResponse = await secretClient.GetSecretAsync("your-secret-name"); var secretValue = secretResponse.Value.Value;第三步:集成到ASP.NET Core配置系统(可选)
如果需要直接将Key Vault的密钥加载到应用配置中,可以在Program.cs里这样配置:var builder = WebApplication.CreateBuilder(args); // 将Azure Key Vault集成到配置系统 builder.Configuration.AddAzureKeyVault( new Uri("https://your-key-vault-name.vault.azure.net/"), new DefaultAzureCredential());
这样处理之后,你就能顺利完成Azure Key Vault的集成了,而且是基于当前官方推荐的最佳实践哦!
内容的提问来源于stack exchange,提问作者superninja
相关产品推荐
相关产品推荐

