конфигурация веб-сайта

#asp.net #authorization #asp.net-4.0

#asp.net #авторизация #asp.net-4.0

Вопрос:

Мне (разработчику) и одному пользователю (ИМЯ_ДОМЕНА ИМЯ_ПОЛЬЗОВАТЕЛЯ) требуется доступ к одному веб-сайту.

Когда я разрабатывал веб-сайт в Visual Studio, используя «автоматический хост», созданный VS, следующих настроек в web.config было достаточно:

 <authentication mode="Windows"/>
<authorization>
  <allow users="DOMAIN_NAMEmy_name,DOMAIN_NAMEUSER_NAME" />
  <deny users="*" />
</authorization>
  

Но когда я создал веб-сайт в IIS, я получаю сообщение об ошибке:

Доступ запрещен.

Описание: Произошла ошибка при доступе к ресурсам, необходимым для обслуживания этого запроса. Сервер может быть не настроен для доступа к запрошенному URL.

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

Какие настройки для ApplicationPoolIdentity и самого веб-сайта необходимо указать?

Большое спасибо!

Редактировать:

Я настроил пул приложений локального IIS на использование идентификатора ‘LocalSystem’, веб-сайт — на использование аутентификации «сквозной» и, как было предложено, отключил «Анонимную аутентификацию», включил «Аутентификацию Windows» — и веб-сайт локально стал работоспособным.

Но локально у меня Windows 7 (IIS7), но в «ТЕСТОВОЙ» среде (где мне нужно развернуть веб-сайт) У меня Windows 2008 server, и на нем нет опции для включения «Проверки подлинности Windows» … не знаю почему … вероятно, это для администратора более высокого уровня, но я являюсь членом группы администраторов…

Думаю, я делаю что-то не так…

Пожалуйста, сообщите.

Ответ №1:

Ваш web.config настроен правильно. Кроме того, убедитесь, что сайт / приложение IIS настроен как:

  • чтобы НЕ разрешать анонимный доступ
  • принудительная встроенная проверка подлинности Windows
  • оставьте пул приложений в качестве сетевой службы

IIS7

IIS6

Найдите диалоговое окно ниже по

  • Панель управления / Административные инструменты -> Диспетчер IIS -> Щелкните правой кнопкой мыши веб-сайт -> Свойства -> Безопасность каталога

IIS 6 не анонимный с проверкой подлинности Windows

Комментарии:

1. Я попытался поиграть с AppPoolIdentity, именем пользователя, под которым работает веб-сайт — никакого результата…

2. Сетевое обслуживание — выполнено, но не могу найти те диалоговые окна, которые вы показали. Это должно быть сделано под управлением Windows server 2003… думаю, это IIS6

3. Я ценю вашу помощь, но когда я щелкаю правой кнопкой мыши на веб-сайте (на тестируемом компьютере) Я не вижу элемента «Свойства».

4. Похоже, что IIS7 был настроен на эту машину … не могу сказать точно (наш администратор в отпуске :))

5. Извините, это Windows 2008 R2, а не 2003 … и в результате IIS7.

Ответ №2:

Возможно, это может быть полезно: я начал получать ошибку 401.2. в .Приложение ASPX (никаких изменений в приложении не внесено), в защищенном пути amd формирует auth.:

 <authentication mode="Forms">
...
</authentication>
...
<location path="Admin">
    <system.web>
        <authorization>
            <allow roles="Admin,Client" />
            <deny users="*" />
        </authorization>
    </system.web>
</location>
  

ПОСЛЕ запуска других приложений MVC на том же компьютере / IIS. Кажется, MVC что-то изменил в конфигурации сервера (маршруты, я полагаю). Любая игра с аутентификацией в IIS (компьютер / сервер / сайт) не помогла. Но помогло следующее: я изменил пул приложений с .Net 4.5 на .Net 4.5 Classic для веб-приложения. Разница в режиме конвейера, управляемого пулом, интегрированный / классический.