Шифрование web.config на виртуальном хостинге - PullRequest
4 голосов
/ 29 августа 2009

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

Я прочитал большинство статей на MSDN по этому вопросу (http://msdn.microsoft.com/en-us/library/53tyfkaw.aspx)) и пришел к выводу, что мне нужно использовать RSAProtectedConfigurationProvider, чтобы я мог экспортировать файл конфигурации с контейнером ключей нашему провайдеру общего хостинга. Однако, когда Я делаю это, я получаю сообщение об ошибке «Не удалось открыть контейнер ключей RSA». Я предполагаю, что это потому, что мне нужно предоставить доступ к учетной записи aspnet для контейнера ключей, но это делается с помощью инструмента aspnet_regiis, который я не могу использовать, как я на общем хосте.

Поэтому я попытался программно зашифровать его при запуске приложения в global.asax, но я получаю ошибку разрешения при сохранении файла - «Произошла ошибка при загрузке файла конфигурации: доступ к пути« C: \ Inetpub \ xxx \ » yyy \ 3acp98k.tmp 'запрещен. Я полагаю, ограничение общего хостинга.

Я не могу запустить инструмент aspnet_regiis в качестве среды общего хостинга.

У кого-нибудь есть идеи относительно того, как можно зашифровать строки подключения?

Ответы [ 4 ]

1 голос
/ 17 апреля 2012

Я вижу, что ничего не было помечено как ответ, поэтому я предполагаю, что вы не получили решение этой проблемы. Просто идея - но если единственная проблема заключается в том, что ваше приложение не имеет доступа на запись в ваш файл конфигурации (подсказка: у вашей учетной записи FTP есть разрешения на запись!) - просто напишите страницу ASPX, которая считывает настройки строки подключения и отображает зашифрованный файл XML (возможно, вы захотите поместить его в защищенное паролем место).

Тогда все, что вам нужно сделать, это:

  1. создать незашифрованный web.config
  2. загрузить
  3. Посетите вашу «страницу с зашифрованными строками соединения»
  4. скопируйте и вставьте зашифрованные данные в ваш локальный web.config
  5. снова загрузите web.config с новыми зашифрованными настройками!
1 голос
/ 29 августа 2009

Вам просто нужно сделать web.config доступным для записи. Разделяемые хосты либо предоставляют полный доступ пользователю IIS, либо предоставляют вам какой-либо веб-инструмент для редактирования прав в вашем файловом менеджере. Вам не нужно запускать aspnet_regiis.

0 голосов
/ 18 января 2014

инструмент aspnet_regiis используется для шифрования и дешифрования с помощью параметров -pef и -pdf. Этот же инструмент используется для создания ключей шифрования с параметром -pc, который создает пару ключей на уровне машины

0 голосов
/ 18 января 2014

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

...