У меня есть виртуальный каталог на IIS 5.1 с двумя страницами aspx. Доступ к Page1 настроен как опция «Интегрированная проверка подлинности Windows» и анонимный доступ отключен. Страница2 доступна через анонимный доступ. На стороне клиента есть объект XmlHttpRequest, который может отправлять запросы, содержащие данные POST, на эти страницы.
Сначала я пытаюсь отправить запрос на Page1. Появится стандартное диалоговое окно проверки подлинности Windows, я ввел свои учетные данные и успешно получил данные POST.
После этого я пытаюсь сделать тот же POST-запрос к Page2, к которому можно обратиться анонимно. И в этом случае Запрос имеет заголовок Content-Length = 0, и никакие данные не были отправлены.
Если повторить запрос к Page1 - он успешно получил данные POST. Тот же код хорошо работает в Firefox 3.5. Страница2 может получать данные даже после отправки запроса на проверку подлинности Windows. Что может быть не так? А может быть, есть какое-то решение этой проблемы?
Спасибо!
Отправка данных:
function sendRequest() {
var url = "http://tom/AuthTest/Default.aspx";
var data = "data";
reqSend(url, data);
}
function sendRequestToWinAuth() {
var url = "http://tom/AuthTest/DefaultWA.aspx";
var data = "newdata";
reqSend(url, data);
}
function reqSend(url, data) {
var xmlhttp = createRequestObject();
if (!xmlhttp) {
alert("Cannot create XMLHttpRequest object.");
return;
}
try {
xmlhttp.open("POST", url, false);
xmlhttp.send(data);
}
catch (ex) {
alert("Error: " + ex.message);
}
}
Запрос на страницу 1:
POST /AuthTest/DefaultWA.aspx HTTP/1.1
Accept: */*
Referer: http://tom/AuthTest/client/testauth.html
Accept-Language: ru
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Host: tom
Content-Length: 7
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: innovator_user=admin
Authorization: Negotiate TlRMTVNTUAADAAAAGAAYAF4AAAAYABgAdgAAAAoACgBIAAAABgAGAFIAAAAGAAYAWAAAAAAAAACOAAAABYKIogUBKAoAAAAPcwBjAGEAbgBkAHQAbwBtAFQATwBNAGUdQIkWMQ6PAAAAAAAAAAAAAAAAAAAAAAo3goJdI7RH9poJwnjypksH2F2pIzbEOQ==
newdata
Запрос на страницу 2:
POST /AuthTest/Default.aspx HTTP/1.1
Accept: */*
Referer: http://tom/AuthTest/client/testauth.html
Accept-Language: ru
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Host: tom
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: innovator_user=admin
Authorization: Negotiate TlRMTVNTUAABAAAAB4IIogAAAAAAAAAAAAAAAAAAAAAFASgKAAAADw==
Content-Length: 0