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

У меня есть два связанных вопроса:

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

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

Ответ 1

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

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

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

-Oisin

Ответ 2

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