Hallo alle zusammen,
Umgebung: .Net 3.5 - VB-Projekt
Ich habe Konfigurationseinstellungen in meiner Applikation verschlüsselt. Nach Installation auf den Anwendungsclients habe ich die Schlüsseldatei importiert und Ausführungsrechte erteilt. Das läuft auch prima, wenn der User unter dem ich die Schlüssel importiert habe die Anwendung ausführt.
Mit folgenden Anweisungen habe ich die Verschlüsselung auf den Anwendungs-Client übernommen
Erstellen eines RSA-Schlüsselcontainers auf meinem Rechner
aspnet_regiis –pc "TestKeys" -exp
Exportieren des Schlüsselcontainers
aspnet_regiis –px "TestKeys" "C:\test-keys.xml" -pri
Auf Client importiert, wo Anwendung ausgeführt werden soll:
aspnet_regiis –pi "TestKeys" "C:\test-keys.xml"
aspnet_regiis -pa "TestKeys" "NT Authority\NetworkService"
Fall 2: Anmeldung als Administrator. Die Anwendung wurde mit der Option "für alle Benutzer" installiert.Der Schlüsselcontainer wie oben importiert.
Nach Anmeldung eines anderen Users an diesem Client und Start der Anwendung kommt dann der Fehler:
Kritischer Fehler: Exception Fehler bei der Entschlüsselung mithilfe des Anbieters "RsaMeinProvider". Fehlermeldung des Anbieters: Der RSA-Schlüsselcontainer konnte nicht geöffnet werden.. (D:\Programme\MeinVerzeichnis\MeineAnwendung.exe.c onfig line 12)System.Configuration.ConfigurationErrorsExcepti on: Der RSA-Schlüsselcontainer konnte nicht geöffnet werden.
bei System.Configuration.RsaProtectedConfigurationProv ider.ThrowBetterException(Boolean keyMustExist)
bei System.Configuration.RsaProtectedConfigurationProv ider.GetCryptoServiceProvider(Boolean exportable, Boolean keyMustExist)
bei System.Configuration.RsaProtectedConfigurationProv ider.Decrypt(XmlNode encryptedNode)
bei System.Configuration.ProtectedConfigurationSection .DecryptSection(String encryptedXml, ProtectedConfigurationProvider provider)
bei System.Configuration.Internal.InternalConfigHost.S ystem.Configuration.Internal.IInternalConfigHost.D ecryptSection(String encryptedXml, ProtectedConfigurationProvider protectionProvider, ProtectedConfigurationSection protectedConfigSection)
bei System.Configuration.Internal.DelegatingConfigHost .DecryptSection(String encryptedXml, ProtectedConfigurationProvider protectionProvider, ProtectedConfigurationSection protectedConfigSection)
bei System.Configuration.Internal.DelegatingConfigHost .DecryptSection(String encryptedXml, ProtectedConfigurationProvider protectionProvider, ProtectedConfigurationSection protectedConfigSection)
bei System.Configuration.BaseConfigurationRecord.CallH ostDecryptSection(String encryptedXml, ProtectedConfigurationProvider protectionProvider, ProtectedConfigurationSection protectedConfig)
bei System.Configuration.BaseConfigurationRecord.Decry ptConfigSection(ConfigXmlReader reader, ProtectedConfigurationProvider protectionProvider)
Sieht so aus, als kennt die Anwendung unter dem "Normalen Useraccount" nun den Schlüsselcontainer nicht.
Wie kann ich, wenn ich als Admin die Anwendung für alle User des Clients installieren möchte, den Schlüsselcontainer für alle bekannt machen? Die Frage stellt sich auch für eine Terminalserverinstallation.
Vielen Dank für Hinweise vorab
Umgebung: .Net 3.5 - VB-Projekt
Ich habe Konfigurationseinstellungen in meiner Applikation verschlüsselt. Nach Installation auf den Anwendungsclients habe ich die Schlüsseldatei importiert und Ausführungsrechte erteilt. Das läuft auch prima, wenn der User unter dem ich die Schlüssel importiert habe die Anwendung ausführt.
Mit folgenden Anweisungen habe ich die Verschlüsselung auf den Anwendungs-Client übernommen
Erstellen eines RSA-Schlüsselcontainers auf meinem Rechner
aspnet_regiis –pc "TestKeys" -exp
Exportieren des Schlüsselcontainers
aspnet_regiis –px "TestKeys" "C:\test-keys.xml" -pri
Auf Client importiert, wo Anwendung ausgeführt werden soll:
aspnet_regiis –pi "TestKeys" "C:\test-keys.xml"
aspnet_regiis -pa "TestKeys" "NT Authority\NetworkService"
Fall 2: Anmeldung als Administrator. Die Anwendung wurde mit der Option "für alle Benutzer" installiert.Der Schlüsselcontainer wie oben importiert.
Nach Anmeldung eines anderen Users an diesem Client und Start der Anwendung kommt dann der Fehler:
Kritischer Fehler: Exception Fehler bei der Entschlüsselung mithilfe des Anbieters "RsaMeinProvider". Fehlermeldung des Anbieters: Der RSA-Schlüsselcontainer konnte nicht geöffnet werden.. (D:\Programme\MeinVerzeichnis\MeineAnwendung.exe.c onfig line 12)System.Configuration.ConfigurationErrorsExcepti on: Der RSA-Schlüsselcontainer konnte nicht geöffnet werden.
bei System.Configuration.RsaProtectedConfigurationProv ider.ThrowBetterException(Boolean keyMustExist)
bei System.Configuration.RsaProtectedConfigurationProv ider.GetCryptoServiceProvider(Boolean exportable, Boolean keyMustExist)
bei System.Configuration.RsaProtectedConfigurationProv ider.Decrypt(XmlNode encryptedNode)
bei System.Configuration.ProtectedConfigurationSection .DecryptSection(String encryptedXml, ProtectedConfigurationProvider provider)
bei System.Configuration.Internal.InternalConfigHost.S ystem.Configuration.Internal.IInternalConfigHost.D ecryptSection(String encryptedXml, ProtectedConfigurationProvider protectionProvider, ProtectedConfigurationSection protectedConfigSection)
bei System.Configuration.Internal.DelegatingConfigHost .DecryptSection(String encryptedXml, ProtectedConfigurationProvider protectionProvider, ProtectedConfigurationSection protectedConfigSection)
bei System.Configuration.Internal.DelegatingConfigHost .DecryptSection(String encryptedXml, ProtectedConfigurationProvider protectionProvider, ProtectedConfigurationSection protectedConfigSection)
bei System.Configuration.BaseConfigurationRecord.CallH ostDecryptSection(String encryptedXml, ProtectedConfigurationProvider protectionProvider, ProtectedConfigurationSection protectedConfig)
bei System.Configuration.BaseConfigurationRecord.Decry ptConfigSection(ConfigXmlReader reader, ProtectedConfigurationProvider protectionProvider)
Sieht so aus, als kennt die Anwendung unter dem "Normalen Useraccount" nun den Schlüsselcontainer nicht.
Wie kann ich, wenn ich als Admin die Anwendung für alle User des Clients installieren möchte, den Schlüsselcontainer für alle bekannt machen? Die Frage stellt sich auch für eine Terminalserverinstallation.
Vielen Dank für Hinweise vorab
Comment