2017-07-29 66 views
0

我最近學到了Go,我正在試驗net/http庫。我一直在嘗試使用http.SetBasicAuth函數對網站進行身份驗證,但它似乎永遠無法工作。它適用於cURL,但不適用於Go。我知道這事做與NTLM,但我不知道如何解決這個問題NTLM和Golang

捲曲:

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) 

身體會不斷返回網站。

回答

1

NTLM身份驗證和基本身份驗證是不一樣的。 NTLM是一個協議,它比標題中的用戶:密碼字符串更復雜。
如果你想從Golang代碼的請求進行身份驗證,你應該利用現有的圖書館之一,如:go-ntlmssp

你也可以閱讀更多有關NTLM協議本身here

+0

太謝謝你了! – potato