“401 Несанкціонований” у каталозі


85

Я припускаю, що це помилка IIS, оскільки цього не відбувається, якщо я запускаю проект на своїй локальній машині.

У мене є таблиці стилів на ~/Content/css

Будь-які файли в цьому каталозі не завантажуються на сторінці, і коли я переходжу до них безпосередньо, я отримую помилку сервера:

401 - Несанкціонований: доступ заборонено через недійсні облікові дані.

Ви не маєте дозволу переглядати цей каталог або сторінку за допомогою наданих вами облікових даних.

Це трапляється лише з цим каталогом, у мене немає проблем з доступом до інших файлів. Чи потрібно щось робити в IIS7, щоб це зупинити?

Відповіді:


46

Ймовірно, у вас немає дозволу на ім’я комп’ютера IUSR_ у цій папці. Я щойно провів швидке сканування, і схоже, ви знайдете тут потрібну інформацію .

Якщо це не так, вам підказує своє ім’я користувача та пароль браузер? Якщо це так, можливо, IIS налаштовано використовувати лише інтегровану автентифікацію, як описано тут .


4
Якщо ви використовуєте пул програм для управління доступом до вашої файлової / файлової системи, не робіть цього. Читайте далі, щоб побачити відповідь imanabidi нижче.
Райан Шилінгтон,

дякую, у моєму випадку я щойно додав усіх із повним контролем
MorenajeRD

8
support.microsoft.com/kb/313075 - Ця сторінка вже не існує. @ m.edmondson
Divya

292
  1. Відкрийте IIS і виберіть сайт, який викликає 401
  2. Виберіть властивість автентифікації в заголовку IIS
  3. Виберіть Анонімну автентифікацію
  4. Клацніть правою кнопкою миші, виберіть Редагувати та виберіть ідентифікатор пулу програм
  5. Перезапустіть сайт, і він повинен працювати

13
Це працює, але чому? Ви можете пояснити трохи більше?
nthapa

2
Здається, це працює, оскільки за замовчуванням "конкретним користувачем" для анонімної автентифікації є IUSR, як зазначено у прийнятій відповіді. Однак ідентифікатор, встановлений у пулі програм, повинен мати дозволи на весь веб-сайт, інакше сайт не завантажується. Отже, хоча мій обліковий запис IUSR не мав доступу (насправді, здається, не існує), обліковий запис, який використовує пул програм, має.
Йоганн

6
Це працює, але що бентежить, це те, що раніше він працював нормально близько 2 років, а потім сьогодні з невідомої причини він перестав працювати ... ваше рішення це виправило.
Serj Sagan

Провів години на цю проблему і не везло, поки я не знайшов це! У мене був веб-додаток MVC 5, який колись публікувався в режимі випуску, а потім завантажував сайт на chrome, вміст завантажувався, а стилі - ні. Посилання є і шляхи правильні, проте всі вони були порожніми! Це виправлення вирішило мою проблему.
GIVE-ME-ChICKEN

у моєму випадку мені просто потрібно було ввімкнути анонімну автентифікацію, оскільки вона була відключена за замовчуванням при створенні програми
Павло,

13
  • Відкрийте IIS
  • виберіть сайт, де ви стикаєтесь з проблемою

  • Виберіть нижче

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

- Клацніть правою кнопкою миші на Анонімну автентифікацію та натисніть редагувати та виконайте наведені нижче дії

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


5

У вас немає дозволу переглядати цей каталог або сторінку за допомогою наданих вами облікових даних.

Це сталося, незважаючи на те, що користувач вже пройшов автентифікацію через Active Directory.

Причин помилки Access Denied може бути багато, але якщо ви думаєте, що вже правильно налаштували все із веб-програми, можливо, є дещо забута. Обов’язково надайте належний дозвіл Аутентифікованим користувачам на доступ до каталогу веб-програм.

Ось кроки, які я зробив для вирішення цієї проблеми.

  1. Клацніть правою кнопкою миші на каталозі, де зберігається веб-програма, оберіть Властивості та натисніть вкладку Безпека.

  2. Натисніть на кнопку «Змінити…», а потім кнопку «Додати…». Введіть Автентифіковані користувачі в полі Введіть імена об’єктів для вибору, а потім натисніть кнопку Додати . Введіть Автентифіковані користувачі в полі Введіть імена об’єктів, які потрібно вибрати.

  3. Натисніть OK, і ви побачите Автентифікованих користувачів як одне з імен користувачів. Дайте належні дозволи в полі Дозволи для автентифікованих користувачів у нижньому кінці, якщо вони ще не позначені.

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

Оновіть свій браузер, і він повинен відобразити веб-сторінку зараз.

Сподіваюся, це допомагає!


2

Вам потрібно перевірити дозволи на папки на вашому сервері та переконатися, що обліковий запис, який ви використовуєте для запуску своєї програми, має доступ до цієї папки.


0

Для мене доступ до анонімних користувачів був прекрасним на рівні сервера, але різнився лише в одній з моїх "віртуальних" папок.

Мені знадобилося трохи заснувати, а потім трохи допомогти колезі, щоб дізнатися, що IIS також має параметри "автентифікації" на рівні віртуальної папки - сподіваюся, це допомагає комусь іншому в моєму скрутному становищі.


0

У нашому випадку це була вбудована в Windows автентифікація, зазначена в додатку web.config

АЛЕ модуль windows-auth взагалі не був встановлений на машині IIS.

Просто додавши ще одну можливу причину.


-4

Ще одним простим виправленням, яке я знайшов, було видалення локального веб-сайту IIS (з диспетчера IIS), а потім повторне створення віртуального каталогу з "Властивостей" вашого веб-проекту у Visual Studio.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.