Мы в процессе обновления с IIS 6 и .NET 3.5 до IIS 7.5 (Windows Server 2008 R2 Enterprise) с тем же приложением. У меня возникли проблемы с правильной работой нашей предыдущей установки IIS 6.IIS 7.5/ASP.NET - анонимный доступ ко всему, кроме одного каталога - как?
В соответствии с IIS 6 я мог бы установить сам сайт для использования конкретного пользователя домена (например, ourdomain \ webuser) для самого IIS. Этот контролируемый первоначальный доступ ко всем файлам, включая HTML, изображения и т. Д., И сформировал первоначальный запрос, который попал на страницу ASP.NET, в которой затем перешел .NET-движок, а пользователь, работающий с .NET, был другим пользователем домена (например, ourdomain \ dotnetuser). Затем мы удалили все разрешения NTFS из одной папки (например,/lockdown /) для пользователя IIS, нашего домена \ webuser. В любое время, когда кто-то пытался получить доступ к файлу в этом каталоге, IIS сказал: «Нет доступа, удалите доступ к проверке подлинности Windows» и запросите их для учетных данных. Это все равно привело к тому, что любой базовый .NET-код запускался как ourdomain \ dotnetuser.
У меня возникли проблемы с тем, чтобы эта же настройка работала под IIS 7.5, и я уверен, что это просто какая-то глупость. Он ... хочет работать, но не полностью. Вот что я сделал:
Пул приложений для сайта установлен в .NET Framework v2.0.50727 с «Интегрированным», выбранным в качестве режима управляемого режима трубопровода. Затем идентификатор устанавливается в ourdomain \ dotnetuser, так что пул работает как конкретный пользователь.
Веб-сайт настроен на IIS> Аутентификация для подключения как «ourdomain \ webuser», и все, кажется, хорошо. Проблема в том, когда я перехожу в этот специальный каталог/lockdown /. Я попытался настроить его точно так же, как IIS 6 (просто удалив доступ к этой папке из нашего домена \ webuser). Когда я делаю это, я получаю стандартный запрос на доступ, но после предоставления моих документов, я все еще получаю:
Error message 401.3: You do not have permission to view this directory or page using the credentials you supplied (access denied due to Access Control Lists). Ask the Web server's administrator to give you access to 'C:\ourwebsite\lockdown\default.aspx'.
Моих учетную запись в группе локальных администраторов на этой машине (плюс я администратор домена здесь), а группе «Администраторы» был предоставлен полный доступ к этой папке. Я вижу следующее событие «Информация» в средстве просмотра событий приложений:
Event code: 4008 Event message: File authorization failed for the request. Event time: 8/1/2010 8:45:18 AM Event time (UTC): 8/1/2010 12:45:18 PM Event ID: 0f8a5de692e74e67bb4e3c65a867586c Event sequence: 32 Event occurrence: 1 Event detail code: 0 Application information: Application domain: /LM/W3SVC/1/ROOT-1-129251371048714102 Trust level: Full Application Virtual Path:/ Application Path: C:\ourwebsite\ Machine name: TESTWEB3 Process information: Process ID: 3008 Process name: w3wp.exe Account name: ourdomain\dotnetuser Request information: Request URL: http://localhost/lockdown/default.aspx Request path: /lockdown/default.aspx User host address: ::1 User: ourdomain\myuser Is authenticated: True Authentication Type: Negotiate Thread account name: ourdomain\dotnetuser
Любые предложения или идеи здесь?
Большое спасибо за предложение. Я помещал это точное содержимое в недавно созданный файл web.config в папку, и он, похоже, не выполняет ничего (что мне кажется странным). Если я верну разрешения NTFS одинаково в этой папке, как и во всех других папках на сайте, я ожидал бы, что этот web.config будет вызван и предотвратит доступ не-админов (т. Е. Анонимный ourdomain \ webuser). Есть ли другой параметр конфигурации, который может потребоваться, чтобы это могло сработать? –
Это работает намного лучше, когда вы сначала устанавливаете авторизацию на уровне сервера! http://www.iis.net/ConfigReference/system.webServer/security/authorization Спасибо! –