【发布时间】:2010-11-17 07:57:36
【问题描述】:
我在 IIS 5.1 上有一个带有两个 aspx 页面的虚拟目录。对配置为“集成 Windows 身份验证”选项的 Page1 的访问已打开,匿名访问已禁用。 Page2 可通过匿名访问获得。在客户端,有一个 XmlHttpRequest 对象可以发送包含 POST 数据的请求到这个页面。
起初我尝试向 Page1 发送请求。出现标准 Windows 身份验证对话框,我输入我的凭据和 Page1 成功接收 POST 数据。 之后,我尝试向 Page2 发出相同的 POST 请求,该请求可以匿名访问。在这种情况下,Request 的 header Content-Length=0,并且没有发送任何数据。
如果向 Page1 重复请求 - 它成功接收 POST 数据。相同的代码在 Firefox 3.5 中运行良好。即使向需要 Windows 身份验证的 Page1 发送请求,Page2 也可以接收数据。有什么问题?也许这是解决这个问题的任何方法?
谢谢!
发送数据:
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
【问题讨论】:
标签: windows internet-explorer iis authentication xmlhttprequest