«401 Unauthorized» в каталоге

87

Я предполагаю, что это ошибка IIS, поскольку этого не происходит, если я запускаю проект на своем локальном компьютере.

У меня есть таблицы стилей в ~/Content/css

Любые файлы в этом каталоге не загружаются на страницу, и когда я перехожу к ним напрямую, я получаю сообщение об ошибке сервера:

401 - Неавторизованный: доступ запрещен из-за неверных учетных данных.

У вас нет разрешения на просмотр этого каталога или страницы с использованием предоставленных вами учетных данных.

Это происходит только с этим каталогом, у меня нет проблем с доступом к другим файлам. Что-то мне нужно сделать в IIS7, чтобы это остановить?

Стивен
источник

Ответы:

47

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

Если это не так, запрашивает ли вас браузер ваше имя пользователя и пароль? Если это так, возможно, IIS настроен на использование только встроенной проверки подлинности, как описано здесь .

m.edmondson
источник
4
Если вы используете пул приложений для управления доступом к базе данных / файловой системе, не делайте этого. Читайте дальше, чтобы увидеть ответ Иманабиди ниже.
Райан Шиллингтон
спасибо, в моем случае я просто добавил всех с полным контролем
MorenajeRD
8
support.microsoft.com/kb/313075 - Эта страница больше не существует. @ m.edmondson
Дивья
295
  1. Откройте IIS и выберите сайт, который вызывает ошибку 401
  2. Выберите свойство аутентификации в заголовке IIS
  3. Выберите анонимную аутентификацию
  4. Щелкните его правой кнопкой мыши, выберите « Изменить» и выберите « Удостоверение пула приложений».
  5. Перезагрузите сайт, и он должен работать
Ясенко
источник
13
Это работает, но почему? Не могли бы вы объяснить еще немного?
nthapa
2
Похоже, это работает, потому что по умолчанию «конкретным пользователем» для анонимной аутентификации является IUSR, как указано в принятом ответе. Однако удостоверение, установленное в пуле приложений, должно иметь разрешения для всего веб-сайта, иначе сайт не загрузится. Итак, хотя у моей учетной записи IUSR не было доступа (на самом деле, похоже, не существует), учетная запись, которую использует пул приложений, имеет.
Иоганн
6
Это работает, но сбивает с толку то, что раньше он работал нормально около 2 лет, а сегодня по неизвестной причине перестал работать ... ваше решение это исправило.
Серж Саган,
Я потратил часы на эту проблему, и мне не повезло, пока я не нашел это! У меня было веб-приложение MVC 5, которое после публикации в режиме выпуска, а затем при загрузке сайта в Chrome, контент загружался, а стили - нет. Ссылки есть, а пути правильные, но все они пусты! Это исправление решило мою проблему.
GIVE-ME-CHICKEN
в моем случае мне просто нужно было включить анонимную аутентификацию, поскольку она была отключена по умолчанию при создании приложения
Пол
15
  • Откройте IIS
  • выберите сайт, на котором вы столкнулись с проблемой

  • Выбрать ниже

введите описание изображения здесь

- Щелкните правой кнопкой мыши "Анонимная аутентификация", нажмите "Изменить" и следуйте инструкциям ниже.

введите описание изображения здесь

Сиддхартха
источник
6

У вас нет разрешения на просмотр этого каталога или страницы с использованием предоставленных вами учетных данных.

Это произошло несмотря на то, что пользователь уже прошел аутентификацию через Active Directory.

Может быть много причин для ошибки «Доступ запрещен», но если вы думаете, что уже правильно все настроили в своем веб-приложении, возможно, есть небольшая деталь, о которой забыли. Убедитесь, что вы даете аутентифицированным пользователям надлежащее разрешение на доступ к каталогу вашего веб-приложения.

Вот шаги, которые я предпринял для решения этой проблемы.

  1. Щелкните правой кнопкой мыши каталог, в котором хранится веб-приложение, выберите «Свойства» и щелкните вкладку «Безопасность».

  2. Нажмите на "Щелкните на" Редактировать ... ", затем на кнопку" Добавить ... ". Введите «Прошедшие проверку» в поле «Введите имена объектов для выбора», затем нажмите кнопку « Добавить» . Введите Authenticated Users в поле Введите имена объектов для выбора.

  3. Нажмите OK, и вы должны увидеть Authenticated Users как одно из имен пользователей. Предоставьте соответствующие разрешения в поле «Разрешения для прошедших проверку пользователей» на нижнем конце, если они еще не отмечены.

  4. Дважды щелкните OK, чтобы закрыть диалоговое окно. Это должно вступить в силу немедленно, но если вы хотите быть уверены, вы можете перезапустить IIS для своего веб-приложения.

Обновите браузер, и теперь он должен отобразить веб-страницу.

Надеюсь это поможет!

Кент Агилар
источник
3

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

Газ Винтер
источник
0

Для меня доступ анонимного пользователя был нормальным на уровне сервера, но варьировался только в одной из моих «виртуальных» папок.

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

user6096790
источник
0

В нашем случае это была встроенная в Windows аутентификация, указанная в web.config

НО модуль windows-auth вообще не был установлен на машине IIS.

Просто добавляю еще одну возможную причину.

Alex
источник
-4

Еще одно простое исправление, которое я нашел, - это удалить локальный сайт IIS (из диспетчера IIS), а затем заново создать виртуальный каталог из «Свойства» вашего веб-проекта в Visual Studio.

KWondra
источник