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");