Как написать в Web.Config в Medium Trust? - PullRequest
40 голосов
/ 03 августа 2008

Загрузка моего первого веб-приложения приличного размера на общий хост предоставил мне новый набор проблем, под которыми я имею в виду бессонные ночи. Проблема заключалась в том, что я наверняка не разработал свое приложение для среднего доверия (или не знал, что это было).

Я смягчил все проблемы, кроме одного.

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

1 Ответ

19 голосов
/ 03 августа 2008

Это на самом деле звучит как уровень IIS Low. Если это так, то вы не сможете писать ни в один файл, не только в файл web.config.

Вот уровни из файла справки IIS:

  • Полный (внутренний) - определяет неограниченные разрешения. Предоставляет разрешения приложения ASP.NET для доступа к любому ресурсу, который защищен операционной системой. Все привилегированные операции поддерживаются.
  • Высокий (web_hightrust.config) - указывает высокий уровень безопасности доступа к коду, что означает, что приложение не может по умолчанию выполнять одно из следующих действий:
    • Вызов неуправляемого кода.
    • Вызовите обслуживаемые компоненты.
    • Запись в журнал событий.
    • Доступ к очередям службы очереди сообщений.
    • Доступ к источникам данных ODBC, OleDb или Oracle.
  • Средний (web_mediumtrust.config) - указывает средний уровень безопасности доступа к коду, что означает, что в дополнение к ограничениям высокого уровня доверия приложение ASP.NET по умолчанию не может выполнять следующие действия:
    • Доступ к файлам вне каталога приложения.
    • Доступ к реестру.
    • Выполнение вызовов по сети или через веб-службу.
  • Низкий (web_lowtrust.config) - указывает низкий уровень безопасности доступа к коду, что означает, что в дополнение к ограничениям среднего уровня доверия приложение по умолчанию не может выполнять следующие действия:
    • Запись в файловую систему.
    • Вызовите метод Assert.
  • Minimal (web_minimaltrust.config) - указывает минимальный уровень безопасности доступа к коду, что означает, что приложение имеет только разрешения на выполнение.

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

...