Вы можете зашифровать только те части файла .config, которые содержат конфиденциальный материал, в данном случае строки подключения.
Ответ aspnet_regiis.exe
Местоположение может отличаться в зависимости от вашей системы и версии .NET, но поиск файлов должен сузить его.
Допустим, у вас есть программа myapp, расположенная в каталоге c: \ dotnetaps \ myapp.
Я использую следующую команду для шифрования части "connectionStrings" файла web.config:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -pef connectionStrings C:\dotnetapps\myapp
Подождите секунду: web.config предназначен только для веб-приложений, а не локальных, верно?
aspnet_regiis.exe работает только для web.config, но формат точно такой же, как app.config . Поэтому все, что вам нужно сделать, это переименовать app.config в web.config, запустить инструмент и переименовать его обратно. Немного неловко, но ничего, что не может быть автоматизировано командным файлом.
@ Encrypts connectionStrings in app.config
ren C:\dotnetapps\myapp\app.config web.config
path\to\exe\aspnet_regiis.exe -pef connectionStrings C:\dotnetapps\myapp
ren web.config app.config
Важное замечание: буквально эти команды зашифруют файл для конкретной системы, на которой он запущен. Возможно, вам захочется немного почитать, чтобы он зашифровывался на ключе, который позволяет вам распространять свой код, но это общая идея.