В моем приложении Windows я пытаюсь зашифровать строку соединения раздел app.config файла, строки соединения часть моего файла app.config являетсяНе удалось расшифровать использование поставщика RsaProtectedConfigurationProvider?
<connectionStrings>
<add name="SQLiteDB" connectionString="Data Source=|DataDirectory|database.s3db;
Version=3;password=mypassword;" providerName="System.Data.Sqlite"/>
</connectionStrings>
и .cs файл я зашифровать его, как
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);
}
После запуска этого кода я получаю зашифрованную строку соединения в другом app.config, этот файл app.config находится в папке bin \ debug, а имя этого файла .config - nameofapplication.exe.config.
Проблема заключается в том, когда я сделал установку этого приложения и запустить на другом компьютере, если дает ошибку, что:
System.Configuration.ConfigurationErrorsException: Failed to decrypt using provider 'RsaProtectedConfigurationProvider'. Error message from the provider: The RSA key container could not be opened.
Я делаю это в первый раз, так что не знаю, как решить эту проблему, stucked плохо в Это.
FYI, или может быть даже о импортирован ключи к другой машине, в моем случае о разрешении. Когда я отлаживаю VS, не удалось расшифровать, но после того, как я открыл VS как администратор. Начал расшифровать его. – enterbutton