Зашифровать и сохранить ASP.NET ConnectionString в файле web.config с помощью Medium Trust? - PullRequest
2 голосов
/ 31 августа 2009

Я искал в Google и Stackoverflow, но не нашел решения, позволяющего отредактировать файл web.config для шифрования и сохранения строки подключения SQL Server для сценария установки.

Ссылка на Доступ к web.config в Medium trust , похоже, предполагает, что следующий код будет работать вместо OpenWebConfiguration, однако это не работает на локальном сервере разработки (работает Medium Trust) или на Rackspace Cloud (ранее Mosso).

String cfgpath = Server.MapPath(@"/web.config");
cfg = System.Configuration.ConfigurationManager.OpenExeConfiguration(cfgpath);

Rackspoace Cloud можно настроить для сохранения файлов с помощью олицетворения, однако я все еще получаю сообщение об ошибке «Произошла ошибка при загрузке файла конфигурации: запрос разрешения типа« System.Security.Permissions.FileIOPermission »при перехвате исключения ConfigurationErrorsException.

Есть идеи, как мне отредактировать файл web.config для шифрования и сохранения строки подключения к SQL Server во время сценария установки?

Обновление # 1 Кажется, что и DpapiProtectedConfigurationProvider, и RsaProtectedConfigurationProvider требуют FullTrust. Существуют ли другие решения для дальнейшей защиты файла Web.config при использовании MediumTrust?

1 Ответ

0 голосов
/ 08 сентября 2011

Если ваш провайдер разрешает это, вы можете настроить файл пользовательской политики, как описано в Как: использовать Medium Trust в ASP.NET 2.0 . Но вряд ли они позволят вам.

Вы также можете попробовать использовать XDocument / XmlDocument и XPath для получения / установки значений конфигурации, хотя вам все равно придется иметь дело с шифрованием / дешифрованием, используя библиотеку, которая работает со средним доверием. ( см. Изменение раздела конфигурации программным способом при среднем доверии )

Если возможно, вы также можете попытаться использовать отдельный процесс, который изменяет файл где-то еще, а затем позволяет загружать измененный файл на сервер с помощью внешних средств, таких как FTP или функция веб-развертывания IIS7.

...