Звучит как хорошее применение для класса ProtectedData.
http://msdn.microsoft.com/en-us/library/system.security.cryptography.protecteddata.aspx
Вызов Protect и передача байтового массива, содержащего строку подключения, вернет байтовый массив зашифрованных данных (которые затем можно преобразовать в base64 и сохранить в локальном файле.
Вызов Unprotect и передача байтового массива, содержащего зашифрованную строку соединения, вернет байтовый массив, содержащий строку открытого текста. Затем просто используйте Convert to ASCII или UTF-8 и т. Д.
Очевидно, что если злоумышленник получит доступ к учетной записи пользователя, на которой запущено приложение, он сможет восстановить строку, но это обеспечивает немного большую безопасность, чем сохранение строки шифрования в сборке (что может позволить восстановление без получения доступа к учетной записи пользователя).