Authentication XmlHttp请求基本身份验证问题

Authentication XmlHttp请求基本身份验证问题,authentication,asp-classic,xmlhttprequest,Authentication,Asp Classic,Xmlhttprequest,我有以下代码创建xmlhttp类的服务器端对象。我正在尝试连接到需要基本身份验证的站点。我能够让这个工作与下面的代码 有什么问题吗?好吧,我用开放电话传递凭证。光靠这一点是不够的。我还必须使用手动计算的base64编码用户名:密码组合设置授权标头。如果我尝试设置标头而不将凭据传递给打开调用,则会失败。说我疯了,但当我把证书交给公开赛时,我就应该这么做了。如果我设置了标题,那就是我所要做的。对吗?两者兼而有之似乎有些不对劲。对吧? 这是一个错误还是一个小故障 其他背景是: iis5和ASP经典 当

我有以下代码创建xmlhttp类的服务器端对象。我正在尝试连接到需要基本身份验证的站点。我能够让这个工作与下面的代码

有什么问题吗?好吧,我用开放电话传递凭证。光靠这一点是不够的。我还必须使用手动计算的base64编码用户名:密码组合设置授权标头。如果我尝试设置标头而不将凭据传递给打开调用,则会失败。说我疯了,但当我把证书交给公开赛时,我就应该这么做了。如果我设置了标题,那就是我所要做的。对吗?两者兼而有之似乎有些不对劲。对吧?

这是一个错误还是一个小故障

其他背景是: iis5和ASP经典 当两项中的一项被写入时收到的错误是HTTP状态401: “您无权查看此页面 您没有使用您提供的凭据查看此目录或页面的权限,因为您的Web浏览器正在发送Web服务器未配置为接受的WWW Authenticate标头字段。”

由于IIS正在发出请求,我无法使用Fiddler进行检查:-(


我相信您遇到了已知的限制(或bug),可以归结为msxml2缺乏(或不正确)对“协商”身份验证机制的支持,这意味着您必须强制解决问题(绕过错误进行的协商)确切地说,就是在您正在进行的操作中添加授权标头。

谢谢,此链接完美地总结了我的体验。我认为这就是发生的事情,我只是想确保我没有弄脏东西。直接使用WinHTTP COM对象也有同样的问题。我不敢相信很久以前还没有解决。您可以确认只能使用Fiddler检查此类请求。ServerXMLHTTP基于WinHTTP;请参阅@Eric:尽管OP可能需要在IIS服务器上执行此操作,但他可能有权也可能没有权限执行此操作。
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