У меня есть следующий код, который создает серверный объект класса xmlhttp. Я пытаюсь подключиться к сайту, который требует базовой аутентификации. Я могу заставить это работать с кодом ниже.
В чем проблема? Ну, я передаю полномочия, используя открытый вызов. Одного этого недостаточно. Я также должен установить заголовок авторизации с вычисленной вручную комбинацией имени пользователя и пароля в кодировке base64. Если я пытаюсь установить заголовок, не передавая учетные данные открытому вызову, он терпит неудачу. Считай меня сумасшедшим, но когда я передаю полномочия на открытое заседание, это все, что мне нужно сделать. Если я установлю заголовок, это все, что я должен сделать. Правильно? Выполнение обоих кажется неправильным. Правильно?
Это ошибка или глюк?
Дополнительный фон:
IIS 5 & ASP Classic
Ошибка, полученная, когда один из двух элементов пропущен, является HTTP-статусом 401:
"Вы не авторизованы для просмотра этой страницы
У вас нет разрешения на просмотр этого каталога или страницы с использованием предоставленных вами учетных данных, поскольку ваш веб-браузер отправляет поле заголовка WWW-Authenticate, которое веб-сервер не настроен для приема. "
Поскольку IIS делает запрос, я не могу проверить его с помощью Fiddler: - (
Set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
xmlhttp.setTimeouts 5000, 5000, 10000, 10000 'ms - resolve, connect, send, receive
xmlhttp.open "GET", "http://example.com/", False, "username", "password"
xmlhttp.setRequestHeader "Authorization", "Basic dXNlcm5hbWU6cGFzc3dvcmQ="
xmlhttp.send