diff --git a/.gitignore b/.gitignore index 58942535c..ffc11549c 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ DebugConfig.txt Host/Multitenancy/demo.config *.log.txt *temp.txt +*.Secrets.config # Folder bin[Rr]elease/ diff --git a/Host/Host.csproj b/Host/Host.csproj index 01771c949..b4573617a 100644 --- a/Host/Host.csproj +++ b/Host/Host.csproj @@ -457,6 +457,8 @@ + + diff --git a/Host/Web.Secrets.config.template b/Host/Web.Secrets.config.template new file mode 100644 index 000000000..7af9b3a0e --- /dev/null +++ b/Host/Web.Secrets.config.template @@ -0,0 +1,10 @@ +//------------------------------------------------------------------------------ +// Installation: +// Einfach diese Datei kopieren und den Kommentar hier oben entfernen. +// Ggf. um fehlende API Keys ergänzen +//------------------------------------------------------------------------------ + + + + + \ No newline at end of file diff --git a/Host/Web.config b/Host/Web.config index dbec21fa4..4f8b31776 100644 --- a/Host/Web.config +++ b/Host/Web.config @@ -307,7 +307,6 @@ - diff --git a/Service/Core/MergedConfig.cs b/Service/Core/MergedConfig.cs new file mode 100644 index 000000000..8e4418e81 --- /dev/null +++ b/Service/Core/MergedConfig.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml; + +namespace BeWo.Service.Core +{ + public static class MergedConfig + { + public static string GetSetting(string key) + { + // 1. Versuche, aus AppSettings.local.config zu lesen + var localConfigPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Web.Secrets.config"); + if (File.Exists(localConfigPath)) + { + var xml = new XmlDocument(); + xml.Load(localConfigPath); + var node = xml.SelectSingleNode($"/appSettings/add[@key='{key}']"); + if (node is XmlElement element) + return element.GetAttribute("value"); + } + + // 2. Fallback: Standard-AppSettings + return ConfigurationManager.AppSettings[key]; + } + } +} diff --git a/Service/Service.csproj b/Service/Service.csproj index b781566e7..380c4bbb7 100644 --- a/Service/Service.csproj +++ b/Service/Service.csproj @@ -230,6 +230,7 @@ + diff --git a/Service/ServiceProxy/OpenWebUIFacade.cs b/Service/ServiceProxy/OpenWebUIFacade.cs index 09cbcf332..001599778 100644 --- a/Service/ServiceProxy/OpenWebUIFacade.cs +++ b/Service/ServiceProxy/OpenWebUIFacade.cs @@ -110,7 +110,7 @@ namespace BeWo.Service.ServiceProxy protected override string getKey() { - var key = ConfigurationManager.AppSettings["OpenWebUIKey"]; + var key = Core.MergedConfig.GetSetting("OpenWebUIKey"); if (string.IsNullOrEmpty(key)) throw new InvalidOperationException("OpenWebUIKey is missing");