Я работаю над своим первым настоящим приложением WinForms, и мой босс попросил меня найти способ зашифровать строку подключения внутри app.config.Я прочитал некоторые предложения в других вопросах, касающихся шифрования строки подключения, и я понимаю, что это не самый лучший ответ на проблему безопасности и конфиденциальности.Мы рассмотрели написание веб-сервисов для извлечения данных из базы данных, но это очень маленький проект, и, к сожалению, в настоящее время это не является приоритетом.
Редактировать: я упустил детали, над которыми я работаюдля государственного учреждения (муниципального колледжа), где, поскольку мы идентифицируем студентов по государственному идентификатору частной системы, нам необходимо защитить приложение в той или иной форме или форме.Студенты могут вводить свои сетевые идентификаторы, чтобы идентифицировать себя (что мы должны защищать в любом случае, поскольку у некоторых студентов есть запретительные приказы, и большая часть их записей должна храниться в секрете), но многие студенты знают только свои системные идентификаторы (которые всегда остаются закрытыми).*
Несмотря на это, мы бы хотели, чтобы этот процесс работал вместе с развертыванием ClickOnce, но мой процесс шифрования приводит к сбою приложения, когда я запускаю исполняемый файл ClickOnce.Вот мой код шифрования (который снят с другого вопроса здесь на SO):
public static void EncryptConfigSection(string sectionName)
{
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
ConfigurationSection section = config.GetSection(sectionName);
if (section != null)
{
if (section.IsReadOnly() == false &&
section.SectionInformation.IsProtected == false)
{
section.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider");
section.SectionInformation.ForceSave = true;
config.Save(ConfigurationSaveMode.Full);
}
}
ConfigurationManager.RefreshSection(sectionName);
}
Я вызываю эту функцию из функции Main () в Program.cs, но я не уверен, если этоэто подходящее место для этого.Кроме того, хотя эта функция правильно шифрует app.config, как только я выхожу из приложения, app.config расшифровывает.Я чувствую, что мне не хватает части головоломки (или, может быть, большой кусок головоломки).
Может кто-нибудь предложить мне некоторое понимание этих проблем?Я хотел бы повторить, что я признаю, что конечными целями здесь являются веб-сервисы, поэтому, если это просто не решаемая проблема с использованием CLickOnce, то я хочу предложить, чтобы мы сейчас расставили приоритеты при написании веб-сервисов.