首頁  >  文章  >  後端開發  >  如何使用系統憑證在 Go HTTP 請求中執行 NTLM 驗證?

如何使用系統憑證在 Go HTTP 請求中執行 NTLM 驗證?

Barbara Streisand
Barbara Streisand原創
2024-10-26 11:46:30903瀏覽

How to Perform NTLM Authentication in Go HTTP Requests with System Credentials?

使用系統憑證的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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn