Как дать разрешение Сайту на создание других Сайтов в IIS 7.5? - PullRequest
0 голосов
/ 08 июля 2010

Я создаю веб-сайт в IIS 7.5 (с Windows 7), который должен иметь возможность создавать дополнительные веб-сайты.Я написал код, который использует Microsoft.Web.Administration для создания сайта программно, и это прекрасно работает, когда я запускаю его как администратор.

Теперь я пытаюсь использовать то же самоекод в контексте моего веб-приложения.Сбой с ошибкой

Ошибка: невозможно прочитать файл конфигурации из-за недостаточных разрешений

для файла redirection.config (который, как я понимаю, находится в% WinDir% /System32 / inetsrv / config).

Я попытался создать новый пул приложений для этого конкретного веб-сайта, работающий под удостоверением IIS AppPool [AppPoolName].Затем я попытался предоставить этому удостоверению разрешение на редактирование конфигурации IIS с помощью

ManagementAuthorization.Grant(@"IIS AppPool\MyAppPool", "Default Web Site", false);

, но все равно получаю ту же ошибку.

Что еще мне следует попробовать?

Ответы [ 2 ]

1 голос
/ 09 июля 2010

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

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

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

Это позволяет нам запускать сайт администратора по крайней мере с привилегиями и в режиме частичного доверия. Возможности того, что можно сделать с помощью задач администратора сайта, несколько сужаются в зависимости от того, какие функции предоставляются в приложении службы Windows.

Это техника, известная как песочница.

0 голосов
/ 08 июля 2010

Я нашел способ сделать это, но мне бы очень хотелось услышать мнение эксперта о том, стоит ли это делать.

Я предоставил разрешения на изменение и запись для учетной записи IIS AppPool \ MyAppPool для% WinDir% / System32 / inetsrv / config и трех файлов .config внутри него.

...