2013-04-20 5 views
5

In meiner Windows-Anwendung i-Verbindungszeichenfolge Abschnitt Datei app.config, Verbindungszeichenfolge Teil meiner app.config Datei versuch istFehler beim Entschlüsseln mit dem Provider 'RsaProtectedConfigurationProvider'?

<connectionStrings> 
<add name="SQLiteDB" connectionString="Data Source=|DataDirectory|database.s3db;  
Version=3;password=mypassword;" providerName="System.Data.Sqlite"/> 
</connectionStrings> 

und in CS- ich es bin Verschlüsselung wie

Datei zu verschlüsseln
Configuration config = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath); 
ConfigurationSection section = config.GetSection("connectionStrings") as ConnectionStringsSection; // could be any section 

if (!section.IsReadOnly()) 
{ 
section.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider"); 
section.SectionInformation.ForceSave = true; 
config.Save(ConfigurationSaveMode.Full); 
} 

nach dem Ausführen dieses Codes bekomme ich verschlüsselte Verbindungszeichenfolge in einer anderen app.config, diese app.config befindet sich im bin \ debug-Ordner und der Name dieser .config-Datei ist nameofapplication.exe.config.

Das Problem ist, wenn ich die Einrichtung dieser Anwendung hergestellt und auf einem anderen Maschine ausgeführt werden, wenn Fehler gibt, dass:

System.Configuration.ConfigurationErrorsException: Failed to decrypt using provider 'RsaProtectedConfigurationProvider'. Error message from the provider: The RSA key container could not be opened. 

ich es tue erstes Mal so weiß nicht, wie diese stucked zu lösen, schlecht in es.

Antwort

3

Die app.config-Datei wurde mit einem Zertifikat auf Ihrem lokalen Computer verschlüsselt. Dieses Zertifikat ist auf dem anderen Computer nicht vorhanden. Sie können daher die Datei app.config nicht entschlüsseln.

Damit dies funktioniert, müssen Sie den Verschlüsselungsschlüssel auf Ihrem Computer exportieren und ihn dann auf dem anderen Computer importieren. Der folgende Artikel zeigt, wie das tun: Lösungsweg: Creating and Exporting an RSA Key Container

+0

FYI, ODER Sie die Schlüssel zu der anderen Maschine importiert, etwa auch in meinem Fall um Erlaubnis sein könnte. Beim debuggen konnte ich VS nicht entschlüsseln aber nachdem ich VS als Administrator geöffnet habe. Begann es zu entschlüsseln. – enterbutton

6

Mit diesem Befehl aspnet_regiis -pa

Öffnen cmd Console -execute als Administrator-

C:\Windows\system32>aspnet_regiis -pa "NetFrameworkConfigurationKey" "myDomain\myUser" 
Microsoft (R) ASP.NET RegIIS versión 4.0.30319.33440 
Utilidad de administración que instala y desinstala ASP.NET en el equipo local. 
Copyright (C) Microsoft Corporation. Todos los derechos reservados. 
Agregando ACL para el acceso al contenedor de claves RSA... 
Con éxito 

Weitere Referenzen:

Ɖiamond ǤeezeƦ answer

The RsaProtectedConfigurationProvider sometimes fails when encrypting an application configuration file

ASP.NET Encryption - aspnet_regiis - Farm

Encrypting and Decrypting Web.config Sections in .NET 4.0

+0

Kiquenet du hast meinen Tag gerettet! Nach dem Upgrade meines Laptops von Win7 zu Win10 habe ich diesen Fehler erhalten. Alles, was ich tun musste, war "aspnet_regiis" wie beschrieben auszuführen. Jetzt funktioniert alles wieder wie ein Charme! –

Verwandte Themen