Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mencapai Pengesahan NTLM dengan Bukti Kelayakan Sistem dalam Permintaan HTTP Go?

Bagaimana untuk Mencapai Pengesahan NTLM dengan Bukti Kelayakan Sistem dalam Permintaan HTTP Go?

Barbara Streisand
Barbara Streisandasal
2024-10-30 02:43:291080semak imbas

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

Pengesahan NTLM dengan Bukti Kelayakan Sistem dalam Permintaan HTTP Go

Sebagai pembangun, anda mungkin menghadapi senario di mana anda perlu membuat permintaan HTTP dan mengesahkan menggunakan bukti kelayakan sistem pengguna yang menjalankan aplikasi anda. Dalam persekitaran Windows, ini boleh dilakukan menggunakan pengesahan NTLM (Negotiate Token Level Message). Walaupun terdapat penyelesaian yang tersedia dalam C# dan Python, pelaksanaan dalam Go adalah kurang mudah.

Penyelesaian dengan Go-ole

Selepas meneliti, kami mendapati bahawa Pustaka go-ole menyediakan akses kepada antara muka WinHTTPRequest, yang boleh digunakan untuk melaksanakan pengesahan NTLM dengan kelayakan sistem. Begini cara untuk mencapainya:

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

Kod ini memulakan pustaka ole dan mencipta contoh WinHTTPRequest. Kaedah SetAutoLogonPolicy dipanggil untuk membolehkan penggunaan kelayakan sistem. Kemudian, permintaan dihantar dengan kaedah Buka dan Hantar. Akhir sekali, teks respons diperoleh menggunakan sifat ResponseText.

Kesimpulan

Menggunakan perpustakaan go-ole, anda boleh memanfaatkan antara muka WinHTTPRequest untuk melaksanakan pengesahan NTLM dengan sistem kelayakan dalam Go, menyediakan pendekatan yang lancar untuk permintaan HTTP dalam persekitaran Windows.

Atas ialah kandungan terperinci Bagaimana untuk Mencapai Pengesahan NTLM dengan Bukti Kelayakan Sistem 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