我使用Node.js通过NTLM身份验证连接到服务器。正如下面的NTLM协议步骤(参见:http://www.innovation.ch/personal/ronald/ntlm.html)。
1: C --> S GET ...
2: C <-- S 401 Unauthorized
WWW-Authenticate: NTLM
3: C --> S GET ...
Authorization: NTLM <base64-encoded type-1-message>
4: C <-- S 401 Unauthorized
WWW-Authenticate: NTLM <base64-encoded type-2-message>
5: C --> S GET ...
Authorization: NTLM <base64-encoded type-3-message>
6: C <-- S 200 Ok
1-5步可以正常工作,但在第6步中,服务器没有给我200 200 OK,但返回状态码为401,并带有标题:
HEADS:{
'content-type': 'text/html',
server: 'Microsoft-IIS/8.0',
'www-authenticate': 'Negotiate, NTLM',
'x-powered-by': 'ASP.NET',
date: 'Sat, 12 Jul 2014 06:44:25 GMT',
'content-length': '1293'
}
有什么不对吗?你可以帮帮我吗?为什么它没有返回200 OK和正确的响应体?非常感谢
答案 0 :(得分:2)
所有
我终于找到了答案。我使用这个ntlm模块(https://www.npmjs.org/package/ntlm)来进行ntlm身份验证。它不起作用,因为我使用了错误的用户名。我在调试日志中找到了它,你也可以在adfs机器的事件视图中找到这个信息(它会有错误信息)。我很抱歉这个愚蠢的错误,但现在我知道不错了。谢谢Alireza。谢谢大家: - )