NTLM和Golang

时间:2017-07-29 08:24:20

标签: curl go ntlm

我最近学习了Go,我正在试验net/http库。我一直在尝试使用http.SetBasicAuth函数对网站进行身份验证,但它似乎无法正常工作。它适用于cURL但不适用于Go。我知道这与NTLM有关,但我不知道如何解决问题

cURL:

curl -v "http://server_that_im_trying_to_auth_with" --ntlm -u user:pass

去:

 req, _ := http.NewRequest("GET", "url", nil)
 req.SetBasicAuth(user, pass)
 resp, _ := http.DefaultClient.Do(req)
 body, _ := ioutil.ReadAll(resp.Body)

身体不断返回网站401页。

1 个答案:

答案 0 :(得分:2)

NTLM身份验证和基本身份验证不一样。 NTLM是一个比标题更复杂的协议:标题中的密码字符串 如果您想通过Golang代码发出请求进行身份验证,则应使用现有库之一,例如:go-ntlmssp

您还可以阅读有关NTLM协议本身的更多信息here