2012-02-06 8 views
1

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

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

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

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

ответ

0

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

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

0

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

+0

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