From 87445a86b360b9467b97dd2e95e05b1cc0fee666 Mon Sep 17 00:00:00 2001 From: Rene Evertz Date: Mon, 5 May 2025 13:27:22 +0200 Subject: [PATCH] Web.Secrets.config -> eigene Config, welche nicht ins git kommt. Anleitung unter Web.Secrets.config.template --- .gitignore | 1 + Host/Host.csproj | 2 ++ Host/Web.Secrets.config.template | 10 ++++++++ Host/Web.config | 1 - Service/Core/MergedConfig.cs | 31 +++++++++++++++++++++++++ Service/Service.csproj | 1 + Service/ServiceProxy/OpenWebUIFacade.cs | 2 +- 7 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 Host/Web.Secrets.config.template create mode 100644 Service/Core/MergedConfig.cs 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");