首頁 > 後端開發 > Golang > 主體

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

Mary-Kate Olsen
發布: 2024-10-25 21:24:02
原創
960 人瀏覽過

How can I use system credentials for NTLM authentication in Go HTTP requests?

使用系統憑證在Go HTTP 請求中進行NTLM 驗證

可以透過利用使用者的系統憑證來簡化Go HTTP 請求中的NTLM 驗證。在 C# 和 Python 等其他語言中,這可以使用內建函式庫來實現。

要在 Go 中使用系統憑證執行 NTLM 驗證,您可以利用 go-ole 套件。該套件允許與 COM(組件物件模型)物件交互,包括 WinHTTPRequest 物件。

下面的程式碼片段示範如何實現此目的:

<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 物件和將 AutoLogonPolicy 設為 0,系統憑證將自動套用至 HTTP 請求。這種方法簡化了 Go 中的 NTLM 驗證,讓您在不明確提供使用者名稱和密碼憑證的情況下發出請求。

以上是如何在 Go HTTP 請求中使用系統憑證進行 NTLM 驗證?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!