| 

.NET C# Java Javascript Exception

4
Hallo,
ich habe eine WinForms Anwendung mit DataGridViews (die per Designer konfiguriert wurden). Der ConnectionString ist in der app.config abgelegt.
Der ConnectionString muss nun auch noch die UserID und das Passwort enthalten.
Wie kann ich diese Information verschlüsselt ablegen, so dass sie nicht für jedermann einsehbar ist?

Liebe Grüße, Tom
News:
15.07.2011
Metal-Frog 946 1 7
1 Antwort
8
Hallo Metal-Frog,

dieser Link könnte genau das sein, das Du suchst.

Gruß

CodeSniffer
15.07.2011
CodeSniffer 1,3k 4 9
KN 1,7k 1 8
Hallo CodeSniffer,
vielen Dank für den Hinweis! Leider gibt es im Framework 4.0 die entsprechenden Klassen nicht mehr. Hast du auch noch eine Idee für Framework 4.0?
Metal-Frog 18.07.2011
2
Doch die gibt es auch noch unter .net 4.0.
Einfach Deinem Projekt eine Referenz auf System.Configuration 4.0.0.0 hinzufügen.
CodeSniffer 18.07.2011
Jaaaa, natürlich - ich bin eine Schnarchnase. Danke!
Super Lösung!
Metal-Frog 19.07.2011
Sorry, hab noch eine Frage dazu: Mit dieser Lösung ist es möglich, dass Anwendung A die Konfiguration von Anwendung B entschlüsselt. Gibt es nicht noch eine einfache Lösung, um eine Art eigenen Key mitzugeben? Oder müsste ich dann einen eigenen ProtectedConfigurationProvider schreiben?
Metal-Frog 19.07.2011
Da hast Du schon Recht. Leider bin ich kein Security-Experte. Laut MSDN [url=http://msdn.microsoft.com/en-us/library/89211k9b(v=vs.80).aspx)]Securing Connection Strings[/url] wird das nur computerspezifisch verschlüsselt. Es gibt auch noch den RsaProtectedConfigurationProvider. Wenn man so ein bischen im Internet stöbert ist auch das Deployment betroffen. Viele verschlüsseln bei der Installation. Das hier ist auch noch ein interessanter Link: [url=http://www.codeproject.com/KB/security/ProtectedConfigWinApps.aspx?display=Print]ConfigWinApps[/url]
CodeSniffer 19.07.2011
Ohhhhh Nooo. Hier kommt für mich der Killersatz: "The connection string can only be decrypted on the computer on which it was encrypted".
Ich brauch's natürlich so, dass die Anwendung auf verschiedenen Rechnern laufen kann.

Wer hat jetzt noch eine Idee???
Metal-Frog 19.07.2011
1
Deswegen müsste man den ConnectionString auch zum Deployment-Zeitpunkt verschlüsseln. Hier wird soetwas gemacht: http://www.codeproject.com/KB/security/ProtectedConfigWinApps.aspx?display=Print
CodeSniffer 19.07.2011
Ein Deployment gibt's nicht. Die fertige Assembly wird auf einem Netzlaufwerk abgelegt und auf den Clients ohne Installation aufgerufen.
Metal-Frog 19.07.2011

Stelle deine .net-Frage jetzt!