Heim  >  Artikel  >  Backend-Entwicklung  >  Wie authentifiziert man Go-HTTP-NTLM-Anfragen mit Windows-Systemanmeldeinformationen?

Wie authentifiziert man Go-HTTP-NTLM-Anfragen mit Windows-Systemanmeldeinformationen?

Barbara Streisand
Barbara StreisandOriginal
2024-10-24 19:11:02117Durchsuche

How to Authenticate Go HTTP NTLM Requests with Windows System Credentials?

Windows-Systemanmeldeinformationen in Go-HTTP-NTLM-Anfragen: Eine Lösung mit Go-OLE

Um die NTLM-Authentifizierung in einer Go-HTTP-Anfrage mit dem durchzuführen Wenn Sie die Systemanmeldeinformationen des Windows-Benutzers benötigen, sollten Sie den folgenden Ansatz in Betracht ziehen:

Durch die Nutzung der Unterstützung von Go für COM-Interoperabilität ist es möglich, das WinHTTPRequest-Objekt zu verwenden, um eine HTTP-Verbindung mit NTLM-Authentifizierung herzustellen. Durch die Nutzung des go-ole-Pakets kann dies wie folgt erreicht werden:

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

    // Create a WinHTTPRequest object
    unknown, _ := oleutil.CreateObject("WinHTTP.WinHTTPRequest.5.1")
    request, _ := unknown.QueryInterface(ole.IID_IDispatch)

    // Set the auto login policy to use system credentials
    oleutil.CallMethod(request, "SetAutoLogonPolicy", 0)

    // Open the request with the desired URL
    oleutil.CallMethod(request, "Open", "GET", "http://example.com", false)

    // Send the request
    oleutil.CallMethod(request, "Send")

    // Retrieve the response text
    resp := oleutil.MustGetProperty(request, "ResponseText")

    // Print the response
    fmt.Println(resp.ToString())
}</code>

Durch die Verwendung des go-ole-Pakets zur Interaktion mit dem WinHTTPRequest-Objekt bietet dieses Code-Snippet eine Lösung zur Durchführung der NTLM-Authentifizierung mithilfe von Systemanmeldeinformationen des Windows-Benutzers, ohne dass manuell ein Benutzername oder ein Kennwort angegeben werden muss.

Das obige ist der detaillierte Inhalt vonWie authentifiziert man Go-HTTP-NTLM-Anfragen mit Windows-Systemanmeldeinformationen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn