Я создал виртуальный каталог под названием test (C: \ test) на веб-сайте по умолчанию и добавил два простых тестовых файла (один html и один aspx). Я думал, что мне нужно добавить IUSR и NetworkService (для пулов приложений) в C: \ test и предоставить пользователям соответствующие права, чтобы IIS7 мог обслуживать контент.
Похоже, что это совсем не так, поскольку я могу просматривать любые файлы в виртуальном каталоге (даже если я конвертирую его в приложение) без изменения или добавления каких-либо параметров безопасности в папку C: \ test.
Я только что установил IIS7 с ASP.NET в Windows 2008, не меняя никаких настроек, кроме добавления виртуального каталога. Я что-то упускаю? Даже в моей книге по IIS7 сказано, что необходимо добавить учетные записи пользователей и добавить соответствующие права.
Я добавил следующее, чтобы ответить на комментарии:
Я ссылаюсь на файл, используя общедоступный IP-адрес http://xxx.xxx.xxx.xxx/test/one.html И IP, ни localhost не находятся на моих надежных сайтах. Я вообще не вошел в систему на сервере, поскольку я получаю доступ к контенту с моего домашнего компьютера, а контент находится на моем производственном сервере. Следующие пользователи / группы имеют доступ к c: \ test на сервере (владелец-создатель, система, администраторы, пользователи), а пул приложений работает под учетной записью NetworkService по умолчанию.
Я в основном установил win2008, добавил роль IIS с asp.net. Затем я открыл IIS7, добавил виртуальный каталог и скопировал два файла в каталог для тестирования. Это отлично работает, но я хочу понять, почему это работает. Каким образом IIS7 может получить доступ к файлам в папке C: \ test без установленных разрешений.
Проверьте своих администраторов и группы пользователей и посмотрите, что внутри этих групп, так или иначе учетная запись IUSR имеет права на просмотр папки.
Во-первых, виртуальный каталог не имеет буквы диска (C :). Возможно, существует путь к вашему виртуальному каталогу, но это не виртуальный каталог. Эта статья хороший обзор.
Возможно, вы используете аутентифицированный доступ, и в этом случае ваш Windows ID передается в IIS, который затем предоставляет вам доступ к нужным файлам.
У меня нет WS2008, чтобы попробовать это, поэтому я не могу быть уверен.