2009-06-04 2 views
11

У меня есть два смежных вопроса:Автоматически шифровать разделы web.config после развертывания/публикации?

Каков наилучший способ управления развертыванием веб-проектов между средами? Я только что загрузил .NET Web Deployment Project и, похоже, обрабатывал такие вещи, как замена определенных разделов web.config, чтобы они соответствовали окружающей среде, что отлично. Другая вещь, которую я хотел автоматизировать, - это шифрование определенных разделов web.config. Есть ли способ до 'auto-encrypt'web.config разделы после публикации?

Второй вопрос: где вы храните свои пароли в web.config? Я хочу зашифровать пароль, но не остальную часть appSettings. Должен ли я создать настраиваемую область настройки web.config?

ответ

3

Hey Joel - проект развертывания сети немного устарел сейчас - вместо этого проверьте инструмент MS Deploy (он будет поставляться с vs2010, но теперь он доступен отдельно). То, что вы спрашиваете, вероятно, не обрабатывается из коробки с MSDeploy (машинное шифрование DPAPI), но поскольку инструмент интегрирован с powershell, вы можете использовать функцию PowerShell v2 CTP3 для запуска скрипта для шифрования ваших конфигураций на каждая машина, удаленно (., который является единственным способом вы можете получить доступ к machien локальной DPAPI в любом случае)

Этот парень здесь делает что-то подобное:

http://forums.iis.net/p/1156413/1904975.aspx

-Oisin

3

Мы используем RSA Protected Configuration для зашифровать разделы нашего web.config вручную после webapp был развернут в новой среде. ОС защищает ключи для нас. Надеюсь, это полезно, поскольку вы выясните, как автоматизировать свое решение.

2

Теперь, похоже, поддержка шифрования разделов web.config после развертывания добавлена ​​в версию 3.5 веб-развертывания.

https://blogs.iis.net/msdeploy/archive/2013/07/09/webdeploy-3-5-rtw.aspx

+0

Важное примечание для этого является то, что встроенный вариант только шифрует 'настройки connectionStrings'. Если вы хотите зашифровать любые другие настройки, вам придется сделать это с помощью отдельного механизма (например, сценария PowerShell) –