BAD IMPERSONATION в IIS Express с базовой аутентификацией для всех статических запросов

Мы пытаемся использовать обычную аутентификацию в проекте, который обычно отлично работает в нашей среде интеграции и контроля качества или даже работает локально с IIS 7.5. Но при локальном запуске в IIS Express возникают очень странные проблемы: любые статические запросы приводят к загадочным ошибкам HTTP 500, говорящим нам об ошибке при доступе к этому ресурсу, возможно, по ряду причин, связанных с разрешениями, с кодом ошибки 0x80070542. В то же время все, что отображается в ASP.NET, получается идеальным.

Беглый поиск показывает, что проблема обычно возникает из-за того, что учетная запись IIS не может получить доступ к этим ресурсам. Это было запущено, и IUSER определенно могут получить доступ к ресурсам - на самом деле, точно такая же папка отлично работает в IIS 7.5; только барфы IIS Express. И только когда мы включаем базовую аутентификацию — если мы включаем аутентификацию Windows, все запросы проходят без проблем.

Наконец, мы попытались запустить sysinternals procmon, чтобы выяснить, смотрим ли мы на правильного пользователя, и не было ли чего-то еще, что дало сбой, и мы обнаружили, что что-то сбоит в результате BAD IMPERSONATION. Но попытки выяснить, кто выдает себя за то, что было бесплодным. Из того, что мы можем сказать, учетные записи IUSER / NETWORK SERVICE / по умолчанию имеют соответствующие уровни доступа, учитывая, что все работает с IIS в рабочем режиме и любой вид проверки доступа проходит. Все учетные записи, на которых работает IIS Express, являются локальными администраторами и должны иметь доступ к олицетворению. Добавление этого права вручную в локальную политику безопасности ничего не изменило. Я просто не вижу способа исправить это, если не считать явного определения пользователя олицетворения, что мне действительно не нужно делать.

Итак, есть ли правильный способ заставить IIS Express работать с базовой аутентификацией и статическими запросами?


person Wyatt Barnett    schedule 06.02.2012    source источник


Ответы (2)


IIS Express работает от имени текущего пользователя, вошедшего в систему, и не выполняет олицетворение. Вероятно, просто для тестирования, не могли бы вы попробовать добавить текущую учетную запись пользователя, вошедшего в систему, в группу IIS IUser и посмотреть, поможет ли это.

person vikomall    schedule 07.02.2012
comment
Спасибо. Пробежал по этому пути - фактически использовал свою собственную учетную запись в качестве тестового входа, который должен иметь соответствующие разрешения (локальный администратор, администратор домена и владелец всех задействованных файлов). Даже добавил это ti IUSERS для хорошей меры, но не увидел улучшения. - person Wyatt Barnett; 07.02.2012

Наконец-то я получил достоверные сведения о том, что в IIS Express 8 что-то глубоко внутри базовой аутентификации нарушено/было нарушено, и это была известная ошибка, которая не будет исправлена ​​в этой версии, но может быть исправлена ​​в будущей версии.

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

person Wyatt Barnett    schedule 21.10.2015