2014-02-17 6 views
0

Я работаю над приложением ASP.NET. Один из наших серверов вдруг начал вести себя иначе, чем другие. Не было проблем до вчерашнего дня, когда внезапно пользователи начали сообщать: Удаленный сервер ответил на ошибку: (401) Неавторизованный.Ошибка 401, сообщенная пользователями. Ошибка на сервере

Однако при просмотре веб-сайта непосредственно с сервера не происходит никакой ошибки. Любые идеи.

+0

Вы используете перезапись URL или ответ. Ред. ...? Вероятно, один маршрут или путь изменили разрешения ... Попробуйте перейти на диагностику аутентификации IIS http://www.microsoft.com/downloads/details.aspx?FamilyID=e90fe777-4a21-4066-bd22-b931f7572e9a&DisplayLang=en – celerno

+0

Диагностика проверки подлинности для IIS, по-видимому, изменился в последних версиях IIS. Но это даст вам подсказку, чтобы узнать, какой запрос дает эту ошибку вашим пользователям. – celerno

ответ

0

Ошибка 401 означает, что учетная запись, используемая для доступа к файлам, не имеет достаточных привилегий для запрошенного содержимого. Существует ряд областей для проверки:

1) Какова учетная запись пользователя, в которой работает пул приложений? 2) Какая схема аутентификации находится на веб-сайте? 3) Имеют ли учетные записи, что пул приложений и любые олицетворяемые учетные записи на уровне веб-сайта имеют правильные разрешения на уровне файлов/папок.

Как правило, пулы приложений создаются в IIS 7 для работы под учетной записью IIS_IUSRS. Эта учетная запись должна, по крайней мере, читать доступ к папке, на которой настроен веб-сайт. Если вы используете анонимную проверку подлинности на своем сайте, это должно вас исправить. Если вы используете Windows/базовую аутентификацию, вам нужно убедиться, что пользователь, который имеет аутентификацию, имеет права на эту папку.

Причина, по которой вы можете видеть сайт, скорее всего, на сервере, потому что учетная запись, к которой вы обращаетесь на веб-сайт, уже имеет права на сервер. Теперь вам нужно попробовать за пределами сервера, чтобы получить реальное сравнение того, к чему имеют доступ другие учетные записи пользователей.

Вы также упомянули серверы слов. Убедитесь, что вы не используете сценарий с двойным прыжком, используя проверку подлинности Windows, а затем пытаетесь получить доступ к ресурсу на другом сервере с этими учетными данными (олицетворением). Это возможно только в среде kerberos.

+0

Нет, это не так. 401 означает, что они не аутентифицированы вообще. Ваше описание звучит как 403. – MikeSmithDev

+0

@MikeSmithDev http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html - Запрос требует аутентификации пользователя. Ответ ДОЛЖЕН включать поле заголовка WWW-Authenticate (раздел 14.47), содержащее вызов, применимый к запрашиваемому ресурсу. Клиент МОЖЕТ повторить запрос с подходящим полем заголовка авторизации (раздел 14.8). Если запрос уже включил учетные данные авторизации, то ответ 401 указывает, что для этих учетных данных было отказано в авторизации. – Josh

+0

Вот что я имел в виду: «Запрос требует аутентификации пользователя». Речь идет не о привилегиях. – MikeSmithDev

Смежные вопросы