Вопрос

Я разрабатываю веб-приложение, для которого требуется сохранение имени пользователя и пароля в файле web.Config. Он также относится к некоторым URL-адресам, которые будут запрашиваться самим веб-приложением, а не клиентом.

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

Все, что я прочитал до сих пор, требует от меня использования переключателя командной строки или сохранения значений в реестре сервера.У меня нет доступа ни к одному из них, поскольку хост находится в сети, и у меня есть доступ только к FTP и панели управления (шлем).

Может ли кто-нибудь порекомендовать какие-нибудь хорошие бесплатные библиотеки DLL или методы шифрования, которые я могу использовать?Я бы предпочел не разрабатывать свои собственные!

Спасибо за отзывы, ребята, но я не могу вводить команды и редактировать реестр.Это должна быть утилита/помощник по шифрованию, но просто интересно, какой именно!

Это было полезно?

Решение

РЕДАКТИРОВАТЬ:
Если вы не можете использовать утилиту asp, вы можете зашифровать файл конфигурации, используя РазделИнформация.ProtectSection метод.

Пример кода проекта:

Шифрование строк подключения внутри Web.config в ASP.Net 2.0

Другие советы

Хотя на первый взгляд это кажется простым, я столкнулся с несколькими препятствиями.

Поэтому я предлагаю шаги, которые мне подходят (для шифрования Настройки приложения раздел), используя поставщика шифрования по умолчанию:

Шифровать разделы в web.config:

  1. Откройте командную оболочку администратора (запустите как администратор!).Командная строка будет включена C: что предполагается для следующих шагов.
    Далее предполагается, что приложение развернуто на D:\Apps\myApp - замените это путем, который вы используете в шаг 3.
  2. cd "C:\Windows\Microsoft.NET\Framework64\v4.0.30319", в 32-битных системах Windows используйте Framework вместо Framework64
  3. cd /D "D:\Apps\myApp"
    Примечание: А /D переключатель автоматически сменит диск, если он отличается от вашего текущего диска.Здесь он изменит путь и диск, поэтому текущий каталог будет D:\Apps\myApp после.
  4. c:aspnet_regiis -pef appConfig .

Вы должны увидеть это сообщение:

Microsoft (R) ASP.NET Regiis версии 4.0.30319.0 Утилита администрирования для установки и удаления ASP.NET на локальной машине.Авторские права (C) Корпорация Microsoft.Все права защищены.Раздел конфигурации шифрования...Удалось!

Вы также можете Расшифровать разделы в web.config:Это те же действия, но с возможностью -pdf вместо -pef для aspnet_regiis.

Также возможно зашифровать другие разделы вашего web.config, например, вы можете зашифровать строки подключения раздел через:

aspnet_regiis -pe "connectionStrings" -app "/SampleApplication"

Более подробную информацию об этом можно найти здесь.


Примечание: Шифрование выше прозрачный в ваше веб-приложение, т.е.ваше веб-приложение не распознает, что настройки зашифрованы.
Вы также можете использовать непрозрачный шифрование, например, с помощью Microsoft DPAPI или с помощью АЕС наряду с Рамочной программой Класс AES.
Как это делается с ДПАПИ я описал здесь, в Stackoverflow.DPAPI работает очень похоже в том смысле, что он использует ключи учетных данных компьютера или пользователя.В целом, непрозрачное шифрование дает вам больше контроля, например, вы можете добавить SALT или использовать ключ на основе парольной фразы пользователя.Если вы хотите узнать больше о том, как сгенерировать ключ из парольной фразы, посмотрите здесь.

Используйте aspnet_setreg.exe http://support.microsoft.com/kb/329290

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top