IIS 7.5 и MVC 3 с использованием аутентификации Windows - получение 401 для статического содержимого, но никогда не запрашивается учетные данные - PullRequest
8 голосов
/ 27 сентября 2011

У меня есть сайт MVC 3, работающий на Server 2008 R2 с IIS 7.5. Мне интересно, почему (с использованием fiddler) я продолжаю получать 401 ответ на статический контент, за которым сразу же следует 302 или 200? Это то, что мне нужно беспокоиться? Я могу напрямую перейти в своем браузере к содержимому, предоставляющему 401, и браузер отображает его без запроса учетных данных.

Если я выполняю трассировку неудачных запросов, я получаю это как вывод:

ModuleName UrlAuthorization 
Notification 4 
HttpStatus 401 
HttpReason Unauthorized 
HttpSubStatus 0 
ErrorCode 0 
ConfigExceptionInfo  
Notification AUTHORIZE_REQUEST 
ErrorCode The operation completed successfully. (0x0) 

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

Как я уже сказал, мой сайт не поврежден, но мне интересно, есть ли у меня проблемы с настройкой.

Заранее спасибо.

РЕДАКТИРОВАТЬ: Вот образец из Fiddler: enter image description here

Ответы [ 3 ]

3 голосов
/ 29 октября 2011

Хорошо ... Я решил это странным образом.В IIS 7.5 вы можете установить учетные данные, которые будут использоваться при доступе к физическому пути для файловой системы.По умолчанию кажется, что он использует опцию «pass through» ... почему-то это не работает, даже когда IUSR имеет доступ к файловой системе.Я создал базовую учетную запись пользователя, предоставил ей права на чтение в файловой системе, а затем в IIS -> мой веб-сайт [Правый клик] -> «Управление веб-сайтом» -> «Расширенные настройки» и обновил учетные данные физического пути.

Как ни странно, у сайтов Orchard, sharepoint, tfs и SSRS на одном и том же сервере такой проблемы не было ... только мое приложение MVC3, запущенное из wwwroot.

0 голосов
/ 27 октября 2011

Развернуто простое приложение MVC3 по веб-пути по умолчанию в IIS 7.5 / Windows 2008R2, которое правильно работает на веб-сервере Vis2k10. Доступ к сайту не прошел проверку подлинности, хотя я использую [authorize] на определенных модулях, сохранил код по умолчанию в global.asax.cs и действительно не сильно изменился. Любые предложения будут оценены.

Попытка включить только Anonymous, а также Anonymous плюс Forms аутентификацию без удачи.

Добавлен в web.config без успеха:

<location path="Content">              
  <system.web>              
    <authorization>              
    <allow users="*" />              
  </authorization>              
  </system.web>              
</location> 

Попытка обновления модулей без успеха:

<modules>  
  <remove name="UrlRoutingModule-4.0" />  
    <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />  
</modules>

Проверенные разрешения IIS с доступом к файловой системе. После входа система работает как чемпион.

0 голосов
/ 27 сентября 2011

У вас случайно есть файл web.config в папке содержимого или какие-либо настройки правил проверки подлинности для папки содержимого в корневом каталоге web.config или в любом другом приложении, которое может вызвать проблему наследования веб-конфигурации?

...