Как зашифровать раздел строк подключения при отладке

Мне нужна следующая установка:

  • При отладке моего приложения я хочу, чтобы мой раздел конфигурации connectionStrings был зашифрован через aspnet_regiis
  • При публикации приложения строки подключения должны быть обычными, незашифрованными элементами <add>, где значение содержит просто текст-заполнитель.

Мои рассуждения таковы:

  1. При отправке кода в удаленное репо я не хочу, чтобы мои учетные данные отладки сохранялись там в виде открытого текста (отсюда и зашифрованный раздел)
  2. При публикации приложения в Azure я могу переопределить заполнитель, незашифрованные строки подключения с портала Azure.

Возможно ли это с помощью преобразований конфигурации?

Единственные примеры, которые я могу найти, преобразуют отдельные элементы строки подключения, но мне нужно, чтобы весь раздел выглядел по-разному в зависимости от настроек отладки/выпуска.

Ценю любой совет


person Bassie    schedule 21.02.2018    source источник


Ответы (1)


Мне удалось сделать это с помощью этот полезный пост:

<connectionStrings xdt:Transform="RemoveAttributes(configProtectionProvider)">
    <EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"
        xmlns="http://www.w3.org/2001/04/xmlenc#" xdt:Transform="Remove" xdt:Locator="Match(Type)" />

    <add xdt:Transform="Insert" name="CDSsvcUsername" connectionString="username"/>
    <add xdt:Transform="Insert" name="CDSsvcPassword" connectionString="password"/>
</connectionStrings>

Поэтому я вызываю xdt:Transform="Remove" для всего элемента Encrypted, а также удаляю атрибут configProtectionProvider для connectionStrings.

Это сработало только после указания xdt:Locator в преобразовании удаления.

person Bassie    schedule 21.02.2018