【发布时间】:2012-02-08 21:40:54
【问题描述】:
我正在尝试使用 Node.js 调用 SOAP Exchange EWS 服务。我创建了一个简单的 http 客户端,如下所示:
var https = require('https');
var username = 'user';
var password = 'password';
var auth = 'NTLM ' + new Buffer(username + ":" + password).toString('base64');
var options = {
host : 'exchangehost',
port : 443,
method : 'post',
path : '/Exchange.asmx',
headers : { Authorization : auth }
};
var request = https.request(options, function(response) {
console.log('Status: ' + response.statusCode);
};
request.write('<soapenv:Envelope ...></soapenv:Envelope>');
request.end();
我收到状态码 401,我怀疑是因为我没有执行 NTLM 身份验证所涉及的三个步骤 (http://www.innovation.ch/personal/ronald/ntlm.html)。有谁知道用于直接与 Exchange EWS 通信或使用 NTLM 进行身份验证的 Node.js 模块,还是我需要自己为 Node.js 实现该协议?非常感谢任何帮助。
【问题讨论】:
-
你解决过这个问题吗?
-
不幸的是我没有。我们决定改用 Kerberos 身份验证,部分原因是我们在这里遇到的问题。
标签: node.js exchange-server exchangewebservices ntlm