使用系統憑證的Go HTTP 請求中的NTLM 驗證
在此問題中,使用者尋求有關在Go HTTP 中執行Windows NTML 驗證的指示使用呼叫使用者的系統憑證進行請求。他們提供了 C# 和 Python 的範例,示範如何在這些語言中實現此目的。
解決方案在於利用 go-ole 函式庫,該函式庫允許在 Go 中使用 WinHTTPRequest。透過遵循與 Python 範例類似的方法,可以在 Go 中使用系統憑證實現 NTML 身份驗證。
以下是Go 中提供的實現此目的的程式碼片段:
<code class="go">package main import ( "fmt" ole "github.com/go-ole/go-ole" "github.com/go-ole/go-ole/oleutil" ) func main() { ole.CoInitialize(0) defer ole.CoUninitialize() unknown, _ := oleutil.CreateObject("WinHTTP.WinHTTPRequest.5.1") request, _ := unknown.QueryInterface(ole.IID_IDispatch) oleutil.CallMethod(request, "SetAutoLogonPolicy", 0) oleutil.CallMethod(request, "Open", "GET", "http://example.com", false) oleutil.CallMethod(request, "Send") resp := oleutil.MustGetProperty(request, "ResponseText") fmt.Println(resp.ToString()) }</code>
此程式碼初始化WinHTTPRequest 對象,設定自動登入策略以使用目前使用者的憑證,開啟對指定URL 的GET 請求,發送請求並檢索回應文字。
以上是如何使用系統憑證在 Go HTTP 請求中執行 NTLM 驗證?的詳細內容。更多資訊請關注PHP中文網其他相關文章!