IIS 7.5 (Windows 7) - ошибка HTTP 401.3 - неавторизован

81

Я пытаюсь протестировать свой сайт ASP.Net на localhost, и я получаю эту ошибку:

HTTP Error 401.3 - Unauthorized
You do not have permission to view this directory or page because of
the access control list (ACL) configuration or encryption settings for
this resource on the Web server.

В папке приложения веб-сайта есть следующие пользователи с полными разрешениями на чтение / запись:

  • СЕТЬ СЕРВИС
  • IIS_IUSRS
  • СИСТЕМА
  • Администраторы
  • Натан (я)

Что я могу попытаться исправить это?

Натан Ридли
источник
Я преследовал эту проблему в течение нескольких часов. У меня уже есть IUSR и Server \ IUSR будет разрешение на чтение. Моей проблемой оказались зашифрованные папки, которые были извлечены из Zip-файла. Если имя папки имеет зеленый цвет, попробуйте снять флажок в разделе «Дополнительные параметры» окна «Свойства». Это исправило мою проблему.
Лайонел Моррисон

Ответы:

123

IIS 7 также создает «IUSR» в качестве пользователя по умолчанию для доступа к файлам через IIS. Так что у пользователя IUSR есть доступ на чтение к файлам / папкам.

Как проверить, имеет ли IUSR доступ для чтения? Щелкните правой кнопкой мыши -> Папка -> Свойства -> Вкладка «Безопасность». Проверьте, есть ли IUSR в списке групп или имен пользователей, если нет.

Нажмите «Правка» -> «Добавить» -> «Дополнительно» -> «Найти сейчас» -> выберите «IUSR» и нажмите «ОК» четыре раза.


источник
5
Убедитесь, что вы ищете в правильном месте. Я искал IUSR в моей рабочей области и ничего не нашел. Затем я изменил местоположение на имя моей машины.
Майк Бландфорд,
8
Примечание. Для работы на моем компьютере требовалось, чтобы у IUSR и IIS_IUSRS был доступ к нему. Я попытался удалить IIS_IUSRS после добавления IUSR, думая, что IUSR - это все, что мне нужно, но оно прохрипело.
kdawg
1
Меня удивило, что простого добавления IIS_IUSRsнедостаточно; Я также должен был добавить IUSR. Стоит вспомнить: о)
Оуэн Блэкер
Конечно, пользователь IUSR уже является членом IIS_IUSRS по умолчанию? Мой сервер, кажется, не упоминает IUSR в своих разрешениях по умолчанию, установленных для wwwroot.
NickG
33

Нашел это на другом форуме, так что я не могу взять кредит, но я сделал это, и это сработало для меня:

«Попробуйте изменить настройку анонимной аутентификации в IIS7:

Нажмите «Аутентификация» и нажмите «Изменить» после выбора «Анонимная аутентификация». В открывшемся окне выберите Идентификатор пула приложений и нажмите ОК. "


источник
5
Это то, что сделал это для меня.
Крис Марисик
Я использую подражание, и это как-то было проблемой. Не уверен, почему, но это сработало!
Джаррод
Это помешало мне вырвать все мои волосы сегодня. Спасибо.
pauska
В IIS 8.5 кажется, что по умолчанию для нового приложения используется не идентификатор пула приложений, а только IUSR. Похоже, немного понял меня!
Патоген
Полагаю, в некотором смысле имеет смысл требовать отдельных идентификаторов для «пользователя, запускающего пул приложений» и «пользователя, выдавшего себя за пул приложений после« анонимной »аутентификации» - но только задним числом и после нахождения этого ответа!
Шамбулатор
20

У меня была та же проблема в IIS 7.5 на Windows Server 2008. Для меня следующие шаги работали, чтобы решить эту проблему:

  • Открыть IIS Manager
  • Нажмите на сайт, который вы хотите изменить
  • Двойной щелчок Аутентификация
  • Нажмите Anonymous Authentication , затем нажмите Edit ... в разделе Actions
  • Изменить для использования учетных данных удостоверения пула приложений вместо конкретного пользователя (у меня был IUSR)

После того, как я сделал это изменение, мои ошибки 401.3 исчезли.

отметка
источник
10

Используете ли вы механизм входа или просто анонимную авторизацию?

Если вы анонимный пользователь, перейдите в диспетчер IIS, в значке аутентификации выберите имя анонимного пользователя и нажмите кнопку «Изменить» в разделе «Действия». Проверьте, какой пользователь указан там, и убедитесь, что у него есть права доступа к файлам / папкам сайта.

Если у вас есть какая-либо форма системы входа в систему, убедитесь, что пользователи, в которых вы входите, имеют права доступа к файлам для сайта, и убедитесь, что у идентификатора пула приложений, под которым вы работаете, есть как минимум права на чтение. к файлам.

MattB
источник
3

По умолчанию в IIS 7.5 каждый пул приложений работает под собственной «виртуальной идентификацией». Идентификационные данные пула приложений - это учетные данные, которые используются для доступа к файловой системе.

Я не уверен в его механике, но Microsoft сделала это, чтобы повысить безопасность установки по умолчанию, одновременно устраняя необходимость создания учетных записей служб в определенных сценариях установки. В любом случае вы должны будете идентифицировать эту учетную запись «виртуальной личности» и предоставить ей доступ к вашему каталогу или изменить учетную запись службы пула приложений.

Виртуальные удостоверения пула приложений называются «IIS AppPool \», поэтому, если вы используете DefaultAppPool, его удостоверение будет «IIS AppPool \ DefaultAppPool».

Смотрите эту статью для более полной информации.

ntcolonel
источник
3

Привет мне для работы на IIS 8: 1) Перейти на виртуальный каталог IIS - 2) аутентификация - 3) анонимная аутентификация - 4) установить идентификатор пула приложений.

Alex
источник
И ответ IUSR, и этот ответ необходимы для полного решения во всех случаях, с которыми я сталкивался
Брайан
2

Поскольку ни один из приведенных выше ответов не помог мне, я подумал, что поделюсь, как я решил эту проблему, когда наткнулся на нее на моей локальной машине с win7 и IIS7.

  • Перейти к IIS7 -> Пулы приложений

    Найдите пул приложений вашего сайта (в моем случае DefaultAppPool), щелкните правой кнопкой мыши и выберите «Дополнительные параметры».

    Найдите главу «Модель процесса» и измените поле «Идентификация» на пользователя, которого вы точно знаете, имеет доступ к файлам в папке вашего сайта (в моем случае это локальный администратор).

Даниэль Хеденстрём
источник
2

Отвечая, чтобы включить информацию из комментариев на принятый ответ.

В IIS 7.5 в Windows Server 2008r2 группа IIS_IUSRS уже включена, но отдельная группа IUSR должна быть добавлена ​​в разрешения, чтобы разрешить доступ к файлам и их загрузку.

Дополнительные сведения о различиях в учетных записях см. В разделе Общие сведения о встроенных учетных записях пользователей и групп в IIS.

Крис Пикеринг
источник
1

Попробуйте это ... Перейдите в раздел «Управление компьютером» (щелкните правой кнопкой мыши на моем компьютере и выберите «Управление») -> Локальные пользователи и группы -> Пользователи -> Выберите IUSR_MACHINENAME -> Щелкните правой кнопкой мыши Свойства -> Убедитесь, что он является участником. IIS_WPG и пользователи, а не гости.


Я работаю с Server 2008 R2, и учетная запись IUser недоступна в списке.

Matt
источник
1

Попробуйте установить клиентскую часть IIS с помощью, aspnet_regiis -cа затем перезагрузите IIS.

titilola
источник
1

Для пользователей, где этого недостаточно:

Я получил это работать с этим:

  • Откройте функциональный вид вашего сайта.
  • Перейти к отображению обработчиков.
  • Найдите путь для .cshtml
  • Щелкните правой кнопкой мыши и выберите «Редактировать разрешения на функцию»
  • Выберите Выполнить
  • Хит ОК.

Теперь попробуйте обновить ваш сайт.

nixkuroi
источник