NTLM身份验证失败,服务器最终响应" 401",但不是" 200 OK"

时间:2014-07-12 07:44:52

标签: ntlm

我使用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和正确的响应体?非常感谢

1 个答案:

答案 0 :(得分:2)

所有

我终于找到了答案。我使用这个ntlm模块(https://www.npmjs.org/package/ntlm)来进行ntlm身份验证。它不起作用,因为我使用了错误的用户名。我在调试日志中找到了它,你也可以在adfs机器的事件视图中找到这个信息(它会有错误信息)。我很抱歉这个愚蠢的错误,但现在我知道不错了。谢谢Alireza。谢谢大家: - )