Действительно ли полезно помещать строки подключения с паролями в файл app.config?
Мне кажется, что app.config никак не зашифрован и информация о пароле может быть легко прочитана.
У меня есть приложение, которое обращается к базе данных, для которой конечный пользователь не имеет аутентификации. Групповой пользователь / пароль используется. Приложение запускается только в том случае, если текущий пользователь Windows находится в группе Active Directory. Поэтому, находясь в приложении, пользователь может подключаться к БД с помощью группы пользователей.
Как правильно обрабатывать такие строки подключения? Скрыть их в исходном коде?
ПРИМЕЧАНИЕ это для автономного приложения - не ASP, IIS и т. Д.
Это сработало для меня
(спасибо Джону Гэллоуэю - http://weblogs.asp.net/jgalloway/archive/2008/04/13/encrypting-passwords-in-a-net-app-config-file.aspx)
private void EncryptConfigSection()
{
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
ConfigurationSection section = config.AppSettings;
if (section != null)
{
if (!section.SectionInformation.IsProtected)
{
if (!section.ElementInformation.IsLocked)
{
section.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");
section.SectionInformation.ForceSave = true;
config.Save(ConfigurationSaveMode.Full);
}
}
}
}
Это работает путем шифрования файла конфигурации exe при первом запуске приложения. Я не нашел способа сделать это как часть процесса установки, поэтому файл конфигурации полностью читается, пока приложение не будет запущено в первый раз. Возможно, у кого-то есть идея ...