Kann eine App.Config aus einer Zeichenfolge oder einem Speicherstream geladen werden?

8

Ich weiß, dass ich eine app.config-Datei von einem anderen Ort mit der folgenden Codezeile laden kann:

%Vor%

wobei ConfigFile ein vollständiger Pfad ist. Ich möchte jedoch eine Datei laden, die für die app.config verschlüsselt wurde. Im Idealfall möchte ich die Datei laden, entschlüsseln und in einen String oder Speicherstream laden und sie an die App übergeben, als wäre sie app.config. Ich weiß, ich könnte einfach alle Werte laden und manuell darauf zugreifen, aber ich würde gerne mit der eingebauten Funktionalität von .NET darauf zugreifen können. Gibt es eine Möglichkeit, der App zu sagen, dass sie die Konfigurationsdatei aus einer anderen Datei als einer Datei verwenden soll?

Die andere Option besteht darin, die Datei zu öffnen, sie zu entschlüsseln, sie in eine temporäre Datei zu schreiben und dann den obigen Code zu verwenden, um sie auf diese Weise zu referenzieren, aber wenn es einen einfacheren Weg gäbe, würde ich das am liebsten tun finde es, um den Umgang mit zusätzlichen Dateien vermeiden zu müssen.

    
Noah 06.01.2009, 16:40
quelle

1 Antwort

3

Während ich bisher noch keine Antwort bekommen konnte, musste ich mir eine Ausrede einfallen lassen. Dies ist möglicherweise nicht die beste Lösung, aber es funktioniert. Im Grunde haben wir die Datei app.config verschlüsselt und ihr einen neuen Namen gegeben. Wenn die App gestartet wird, nimmt sie die verschlüsselte Datei, dekriert sie und schreibt sie in eine temporäre Windows-Datei. Dadurch wird sichergestellt, dass es sich bei der Datei um einen eindeutigen zufälligen Namen handelt, der wahrscheinlich nicht gefunden wird, und wir müssen die Dateien nicht verwalten, da Windows sie automatisch für uns löscht. So können wir bei jedem Relaunch eine neue Datei neu schreiben und verwenden. Hier sind die grundlegenden Code-Schnipsel für alle Interessierten.

Diese erste Methode, LoadFileAppConfig() , lädt die Datei. In diesem Fall müssen wir, da sie Services sind, den ausführenden Pfad laden und ihn an die entsprechende Methode übergeben. Wir erhalten den Pfad der entschlüsselten app.config zurück und verwenden dann die Methode SetData() , um sie als app.config-Pfad festzulegen.

%Vor%

Bei dieser Methode erhalten wir den Pfad der Datei, übergeben diese Datei zur Entschlüsselung und geben sie als Zeichenfolge zurück und schreiben diese Datei dann in unsere temporäre Windows-Datei.

%Vor%

Diese letzte Methode übernimmt den Pfad der verschlüsselten Datei app.config, entschlüsselt die Datei mit unserem Entschlüsselungswerkzeug (stellt sicher, dass wir sie entschlüsseln können und der richtige Dateityp ist) und gibt dann den entschlüsselten Inhalt als Antwort zurück string zu der obigen Methode.

%Vor%     
Noah 05.02.2009, 22:28
quelle

Tags und Links