Как я могу подавить диалог аутентификации браузера?

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

Веб-сервер определяет, что, хотя в запрос включен правильно сформированный заголовок авторизации, учетные данные в заголовке не проходят проверку подлинности.Веб-сервер возвращает код состояния 401 и включает в себя один или несколько заголовков WWW-Authenticate со списком поддерживаемых типов аутентификации.Браузер обнаруживает, что ответ на мой вызов объекта XMLHttpRequest - 401, и ответ включает заголовки WWW-Authenticate. Затем появляется диалоговое окно аутентификации с запросом имени пользователя и пароля.

Это все нормально до шага 3. Я не хочу, чтобы диалоговое окно всплыло, я хочу обработать ответ 401 в моей функции обратного вызова AJAX. (Например, отображая сообщение об ошибке на странице входа в систему.) Я хочу, чтобы пользователь повторно вводил свое имя пользователя и пароль, конечно, но я хочу, чтобы они увидели мою дружественную, обнадеживающую форму входа в систему, а не уродливую браузерную, по умолчанию диалог аутентификации.

Между прочим, я не имею никакого контроля над сервером, поэтому возвращение пользовательского кода состояния (т. Е. Чего-то другого, кроме 401) не вариант.

Есть ли способ подавить диалог аутентификации? В частности, можно ли отключить диалоговое окно «Требуется аутентификация» в Firefox 2 или более поздней версии? Есть ли способ подавления подключения к[Хост] диалог в IE 6 и позже?

редактировать
Дополнительная информация от автора (18 сентября):
Я должен добавить, что реальная проблема с диалоговым окном аутентификации браузера заключается в том, что он дает недостаточно информации пользователю.

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

Диалог не признает тот факт, что он простосделал введите имя пользователя и пароль. В нем четко не указано, что возникла проблема и что он должен попробовать еще раз. Вместо этого диалоговое окно предоставляет пользователю загадочную информацию типа «Сайт говорит:»[Область]'." Где[Область] это короткое имя, которое может любить только программист.

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

Ответы на вопрос(11)

Ваш ответ на вопрос