Azure Key Vault, das vor Build () in .NET 6 Container App nicht zugänglich istC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Azure Key Vault, das vor Build () in .NET 6 Container App nicht zugänglich ist

Post by Anonymous »

Setup < /strong> < /p>
Ich führe eine .NET 6 -Web -App in einer Azure -Container -App aus und greift auf Azure -Schlüsselverluder für Geheimnisse und Verbindungsstaaten zu. Build () (sogar aus dem Programm.cs). Der Aufruf von SecretClient.getSecret (Keyname) fällt an diesem Punkt fehl. />
Was habe ich versucht,
zu versuchte. /> Bestätigung der Berechtigungen der wichtigsten Gewölbe (es funktioniert später, daher sollten die Berechtigungen nicht das Problem sein) < /li>
< /ul>
Frage < /strong> < /p> < /> Wie kann ich ein besseres Muster für das Aufrufen von BURS (). /> Einblicke wären sehr geschätzt!

Code: Select all

public class KeyVaultService : IKeyVaultService
{
private readonly SecretClient _secretClient;

public KeyVaultService(string keyVaultName)
{
_secretClient = new SecretClient(new Uri($"https://{keyVaultName}.vault.azure.net"), new DefaultAzureCredential());
}

public string GetSecret(string keyName)
{
KeyVaultSecret secret = _secretClient.GetSecret(keyName);
return secret.Value;
}
}

public class Program
{
public static void Main(string[] args)
{
WebApplicationBuilder? builder = WebApplication.CreateBuilder(args);
// ... configuring logging, etc ...

var keyVault = new KeyVaultService(keyVaultName);
// this is where it fails, but only in the Container app
// locally works fine.
string conn = keyVault.GetSecret("ConnectionString");

// registering a service that needs connectionString in its constructor.

var app = builder.Build();

// after Build() the Key Vault works fine.
keyVault = new KeyVaultService(keyVaultName);
conn = keyVault.GetSecret("ConnectionString");

// omitting unrelated code, like app.Run()
}
}
update [/b]
Ich habe versucht, den Schlüsselgewölbe in die Konfiguration hinzuzufügen, und funktioniert in meiner Azure -Container -App nicht (funktioniert jedoch local). Anbieter. < /p>

Code: Select all

WebApplicationBuilder? builder = WebApplication.CreateBuilder(args);
builder.Configuration.AddAzureKeyVault(XXXXX, new DefaultAzureCredential());
builder.ConfigureDatabase(builder.Configuration["ConnectionString"]);
var app = builder.Build();

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post