Haskell 中的 NTLM 身份验证

NTLM authentication in Haskell

在我的 Haskell 程序中,我需要与需要 NTLM 身份验证的服务器通信。我知道这是因为服务器回答

401 ... WWW-Authenticate: NTLM

应我的要求。当我在 Chrome 中访问该网站并跟踪 HTTP 会话时,很明显正在进行某种质询-响应身份验证。

有没有办法在 Haskell 中执行这种身份验证?以前我一直在使用 req 库来做 HTTP 请求,但它似乎不支持 NTLM 身份验证。我还了解到,NTLM 需要在连接经过身份验证后为所有流量重新使用单个 TCP 连接。通过阅读文档,我在 req 中没有看到任何明显的实现方式。

我没试过这个,也不了解 NTLM,但看起来 libcurl bindings 有你需要的东西。

也许你可以用它们来构建类似 this 的东西。你可以试试:

curlGet "http://url.com" [CurlHttpAuth [HttpAuthNTLM], CurlUserPassword "username:password"]