2014-01-16 4 views
0

Я бегу мое приложение ASP.NET веб-форм с проверкой подлинности Windows на IIS 6.0 и имеются следующие записи в журналах IIS:Получение 401 ошибку на IIS 6

2014-01-15 14:51:26 W3SVC1 192.168.21.16 GET /MyApp/myPage.aspx 80 - 192.168.128.19 ... 401 1 0 
2014-01-15 14:51:26 W3SVC1 192.168.21.16 GET /MyApp/myPage.aspx 80 MyDomain\UserName 192.168.128.19 ... 200 0 0 

Так, запрос, без имени пользователя (и 401 ошибка в результате) следует запрос с именем пользователя. Такие записи без имени пользователя появляются иногда, не всегда. В остальных случаях есть запись только с именем пользователя.

Пожалуйста, может кто-нибудь сказать мне, почему я получаю ошибку 401?

P.S. Анонимная аутентификация отключена!

ответ

1

Вы обнаружили, как работает http auth.

Когда пользователь впервые подключается к серверу, браузер не передает никаких учетных данных. Причина в том, что браузер не знает, нужно ли ему это делать. Он также не знает, в каком формате отправить пароль, и, что более важно, ВЫ НЕ ХОТИТЕ ОТПРАВИТЬ ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ НА КАЖДЫЙ СЕРВЕР, КОТОРУЮ, ЧТО ПОСЕТИТЕ.

Таким образом, IIS получает этот запрос без аутентификации и отправляет обратно 401. 401 не означает, что вы не прошли аутентификацию для доступа к этой веб-странице, это также включает КАК вы должны аутентифицироваться (BASIC имя пользователя/пароль, Kerberos и т. Д. назовите несколько методов).

TLDR. 401 - сообщить браузеру, как отправить имя пользователя/пароль (и что вам нужно пройти аутентификацию для просмотра ресурса).

+0

Большое спасибо. Вы экономите свое время. –

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