san*_*tro 2 c# azure-keyvault asp.net-core visual-studio-2022 .net-7.0
我正在尝试使用 Visual Studio 2022(企业版)使用 .NET 7 asp.net core Web api 应用程序的托管标识从 appsettings.Development.json 文件中读取值
这是 Program.cs 的代码:
var builder = WebApplication.CreateBuilder(args);
var config = builder.Configuration;
// Add AzureKeyVault
builder.Host.ConfigureAppConfiguration((context, appConfig) =>
{
var objBuiltConfig = appConfig.Build();
var userAssignedClientId = objBuiltConfig[AppKeys.UserAssignedClientId];
var objSecretClient = new SecretClient(new Uri(objBuiltConfig[AppKeys.KeyVaultURL]),
new DefaultAzureCredential(new DefaultAzureCredentialOptions
{
ManagedIdentityClientId = userAssignedClientId
}));
config.AddAzureKeyVault(objSecretClient, new KeyVaultSecretManager());
});
Run Code Online (Sandbox Code Playgroud)
在代码编辑器中我看到警告:
建议使用 webapplicationbuilder.configuration 而不是 configureappconfiguration
即使在调试时我也没有得到数据。
任何人都可以帮助我提供一些代码示例,该示例将作为我的实现的参考
====================更新======================
var userAssignedClientId = config[AppKeys.UserAssignedClientId];
var keyVaultURL = config[AppKeys.KeyVaultURL];
builder.Configuration.AddAzureKeyVault(new Uri(uriString: keyVaultURL), new
DefaultAzureCredential(new DefaultAzureCredentialOptions {
ManagedIdentityClientId = userAssignedClientId }));
Run Code Online (Sandbox Code Playgroud)
但现在我在new Uri(uriString: keyVaultURL). 我想知道它为什么会来。
而不是这个:
builder.Host.ConfigureAppConfiguration((context, appConfig) =>
{
config.AddAzureKeyVault(...);
});
Run Code Online (Sandbox Code Playgroud)
改成这样:
builder.Configuration.AddAzureKeyVault(...);
Run Code Online (Sandbox Code Playgroud)
以下是我维护的应用程序的此类方法的示例:github.com/martincostello/SignInWithAppleSample
| 归档时间: |
|
| 查看次数: |
1207 次 |
| 最近记录: |