2017-08-09 1 views
0

J'utilise l'outil SecretManager dans aspnetcore pour stocker une chaîne de connexion au cours du développement afin de l'empêcher de contrôler la source.Publication de appsettings.json en toute sécurité sur Azure

Cela fonctionne très bien.

Mais maintenant je veux publier l'application sur Azure. Quand il publie, il n'y a pas de chaîne de connexion dans appsettings.json pour que l'application ne puisse pas se connecter à la base de données. Alors, comment dois-je inclure la chaîne de connexion?

Si je l'ajoute simplement à appsettings.json, cela ne va-t-il pas à l'encontre de l'objectif d'utiliser le gestionnaire de secrets? Comme maintenant j'ai mis un nom d'utilisateur et un mot de passe dans un document qui est sous le contrôle de la source.

Y a-t-il quelque chose qui me manque? Suis-je censé FTP sur le site et l'ajouter là?

+4

Copie possible de [Définition de la chaîne de connexion SQL pour l'application Web ASP.NET Core dans Azure] (https://stackoverflow.com/questions/31097933/setting-the-sql-connection-for-asp -net-5-web-app-in-azure) – Set

Répondre

3

Vous êtes censé le placer dans les paramètres du site Azure. C'est l'approche préférée.

Si votre JSON ressemble à ceci:

{ 
    "ConnectionStrings": { 
    "Context": "Server=(localdb)\\mssqllocaldb;Database=local-dev;Trusted_Connection=True" 
    } 
} 

Vous créez une chaîne de connexion avec le nom Context (encore un réglage avec la ConnectionStrings:Context clé) et entrez votre chaîne de connexion dans les applications Paramètres de l'application Assurez-vous que vous utilisez des variables d'environnement dans votre Startup:

var builder = new ConfigurationBuilder() 
.AddEnvironmentVariables(); 
+0

Fonctionne très bien. Merci beaucoup. –