Назад | Перейти на главную страницу

Проблема с разрешением IIS 6.0

Меня смущает разница между двумя учетными записями,

Какие отличия?

Я использую Windows Server 2003 x64 + IIS 6.0.

заранее спасибо, Джордж

Это несколько сбивает с толку, не правда ли? Во-первых, учетная запись анонимного доступа существует уже много лет, идея пулов приложений является новой в IIS 6. Я думаю (хотя у меня нет доказательств), что если бы IIS сейчас разрабатывался с нуля, это было бы не так. setup, кажется, что он просто сохраняет совместимость.

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

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

РЕДАКТИРОВАТЬ: Дальнейшее чтение.
Найден быстрый поиск MSDN этот статья, которая может помочь. Я также нашел эти два статьи о том, как все изменилось в IIS 7.
Кажется, они подтверждают мою теорию о том, что учетная запись анонимного доступа на самом деле не требуется, теперь IIS поддерживает пулы приложений.

РЕДАКТИРОВАТЬ: О выдаче себя за другое лицо
ASP.NET будет использовать настройки из machine.config, если в web.config нет настройки. Дополнительная информация о взаимодействии различных файлов конфигурации Вот

Я новый пользователь и у меня недостаточно очков репутации для комментариев, поэтому, надеюсь, ответить подобным образом - это нормально. Отличное обсуждение. Думал вставить пару комментариев.

pipTheGeek, как вы отметили, в IIS7 это намного лучше. Вы можете настроить сайт, чтобы всегда использовать только удостоверение пула приложений. Тогда вам больше не нужно поддерживать двух пользователей. Это замечательно, когда у вас есть 1 сайт на пул приложений или когда все сайты в одном пуле приложений доверяют друг другу.

IIS_ WPG (без пробела. Эта текстовая последовательность выделена курсивом) является требованием и не учитывается при выдаче себя за другое лицо. В IIS6, если вы не добавляете пользователя в группу IIS_ WPG, его нельзя использовать в качестве идентификатора пула приложений. Пул приложений выйдет из строя при первой попытке его использования. В IIS7 пользователь автоматически вводится в IIS_ WPG, поэтому вам больше не нужно об этом беспокоиться.

Что касается олицетворения, это не выполняется на 100%, поэтому вам всегда будут нужны как минимум разрешения на чтение как для удостоверения пула приложений, так и для анонимного или аутентифицированного пользователя. Например, если вы используете проверку подлинности Windows для строки подключения к SQL Server, она всегда будет RevertToSelf и будет использовать удостоверение пула приложений, а не удостоверение анонимного (или прошедшего проверку подлинности) пользователя.

Джордж, чтобы убедиться, что вы настроили олицетворение, используйте processmonitor с www.sysinternals.com. Благодаря этому вы можете увидеть, что используется на диске, а свойства строки покажут вам, олицетворено оно или нет. Это бесплатный инструмент, безопасный для производственного сервера и достаточно простой в освоении.

По умолчанию олицетворение не включено, поэтому, если вы не видите его в своем web.config, вероятно, этого еще нет. Однако, если вы не являетесь администратором сервера, проверьте также корневой файл web.config и machine.config в папке framework \ config, чтобы убедиться, что он там не установлен. Найдите слово "олицетворение".

С другой стороны, всякий раз, когда вы видите документы, в которых говорится о пользователе ASPNET, считайте их старыми и предназначенными для IIS5. На самом деле в IIS6,7 это означает пользователя удостоверения пула приложений.