2009-08-28 3 views
4

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

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

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

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

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

ответ

1

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

1

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

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

  1. создать шифрованный web.config
  2. загрузить его
  3. посетить ваш «дисплей зашифрованы ConnectionStrings веб-страницу»
  4. скопировать и вставить зашифрованные данные в к вашему локальному web.config
  5. загрузите web.config снова с новыми зашифрованными настройками!
0

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

0

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

Смежные вопросы