Шифрование пользовательских настроек конфигурации - PullRequest
3 голосов
/ 06 декабря 2011

У меня проблемы с шифрованием раздела конфигурации.Мы используем пакет от внешнего поставщика, и структура web.config структурирована следующим образом:

web.config

<appSettings file="customSettings.config">
  <add key="generic_setting" value="true"/>
  <add key="another_generic_setting" value="false"/>
</appSettings>

customSettings.config

<appSettings>
  <add key="company_db_username" value="sa"/>
  <add key="company_db_password" value="secret"/>
</appSettings>

Мы используем WiX для создания установочного пакета (msi), чтобы мы могли развернуть его в нашей организации.Мы выполняем одно пользовательское действие - шифрование раздела appSettings.В описанной выше ситуации, к сожалению, он только шифрует раздел в файле web.config и оставляет файл customSettings.config без изменений.

Я заметил, что атрибут configSource работает немного лучше с шифрованием, чем атрибут file, но он не поддерживает объединение элементов из обоих файлов.Теперь я мог программно объединить элементы customSettings.config в web.config, прежде чем зашифровать все в настраиваемом действии, но мне было интересно, есть ли более чистое решение для этого.

1 Ответ

1 голос
/ 26 декабря 2011

Исходя из вашего примера, где информация, которую вы шифруете, представляет собой имя пользователя и пароль БД, одной из альтернатив является использование аутентификации Windows для первого подключения к вашей БД. Первоначальный пользователь будет иметь очень ограниченные права.

Используйте это соединение, чтобы получить учетные данные / строку соединения для учетной записи с более высоким уровнем привилегий, которую вы ранее сохранили с использованием шифрования БД на уровне элементов (см. OPEN SYMMETRIC KEY и ENCRYPTBYKEY).

...