refactor(securestore): store entire connection strings in SecureStore
Eliminates placeholder substitution (${KEY}) in favor of storing complete
connection strings as single encrypted values. SecureStore now auto-creates
entries for all connection strings defined in appsettings. ConfigManager
editor reads/writes values directly to SecureStore.
This commit is contained in:
@@ -346,14 +346,18 @@ public class MainWindowViewModel : ViewModelBase
|
||||
_secureStoreManager.OpenStore(storePath, keyFilePath);
|
||||
}
|
||||
|
||||
// Ensure all required keys exist
|
||||
if (secureStoreConfig.RequiredKeys?.Count > 0)
|
||||
// Ensure all required entries exist (both RequiredKeys and connection strings)
|
||||
var connectionStringNames = _appSettings?.ConnectionStrings?.Entries
|
||||
.Select(e => e.Name)
|
||||
.Where(n => !string.IsNullOrEmpty(n))
|
||||
?? Enumerable.Empty<string>();
|
||||
|
||||
var requiredKeys = secureStoreConfig.RequiredKeys ?? new List<string>();
|
||||
|
||||
var addedKeys = _secureStoreManager.EnsureAllRequiredEntries(requiredKeys, connectionStringNames);
|
||||
if (addedKeys.Count > 0)
|
||||
{
|
||||
var addedKeys = _secureStoreManager.EnsureRequiredKeys(secureStoreConfig.RequiredKeys);
|
||||
if (addedKeys.Count > 0)
|
||||
{
|
||||
_logger?.LogInformation("Added {Count} missing required keys", addedKeys.Count);
|
||||
}
|
||||
_logger?.LogInformation("Added {Count} missing required SecureStore entries", addedKeys.Count);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -575,6 +579,7 @@ public class MainWindowViewModel : ViewModelBase
|
||||
"ExcelExport" => new ExcelExportFormViewModel(_appSettings.ExcelExport, MarkAsChanged),
|
||||
"ConnectionStrings" when _dialogService != null => new ConnectionStringsFormViewModel(
|
||||
_appSettings.ConnectionStrings,
|
||||
_secureStoreManager,
|
||||
MarkAsChanged,
|
||||
_dialogService,
|
||||
_connectionTestService),
|
||||
|
||||
Reference in New Issue
Block a user