Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah saya boleh menggunakan bukti kelayakan sistem untuk pengesahan NTLM dalam permintaan HTTP Go?

Bagaimanakah saya boleh menggunakan bukti kelayakan sistem untuk pengesahan NTLM dalam permintaan HTTP Go?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-25 21:24:021057semak imbas

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

Pengesahan NTLM dalam Permintaan HTTP Go Menggunakan Bukti Kelayakan Sistem

Pengesahan dengan NTLM dalam permintaan HTTP Go boleh dipermudahkan dengan menggunakan bukti kelayakan sistem pengguna . Dalam bahasa lain seperti C# dan Python, ini boleh dicapai menggunakan perpustakaan terbina dalam.

Untuk melaksanakan pengesahan NTLM dengan bukti kelayakan sistem dalam Go, anda boleh memanfaatkan pakej go-ole. Pakej ini membenarkan interaksi dengan objek COM (Model Objek Komponen), termasuk objek WinHTTPRequest.

Berikut ialah coretan kod yang menunjukkan cara untuk mencapai ini:

<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>

Dengan memanfaatkan objek WinHTTPRequest dan menetapkan AutoLogonPolicy kepada 0, bukti kelayakan sistem digunakan secara automatik pada permintaan HTTP. Pendekatan ini memudahkan pengesahan NTLM dalam Go, membolehkan anda membuat permintaan tanpa memberikan bukti kelayakan nama pengguna dan kata laluan secara eksplisit.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menggunakan bukti kelayakan sistem untuk pengesahan NTLM dalam permintaan HTTP Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn