NTLM-Authentifizierung in Go-HTTP-Anfragen mit Systemanmeldeinformationen
In dieser Frage sucht der Benutzer nach Anleitung zur Durchführung der Windows-NTML-Authentifizierung in einem Go-HTTP Anfrage unter Verwendung der Systemanmeldeinformationen des aufrufenden Benutzers. Sie stellen Beispiele aus C# und Python bereit, die zeigen, wie dies in diesen Sprachen erreicht werden kann.
Die Lösung liegt in der Verwendung der Go-Ole-Bibliothek, die die Verwendung von WinHTTPRequest in Go ermöglicht. Durch die Verfolgung eines ähnlichen Ansatzes wie im Python-Beispiel ist es möglich, die NTML-Authentifizierung mit Systemanmeldeinformationen in Go zu implementieren.
Hier ist der bereitgestellte Codeausschnitt in Go, der dies erreicht:
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())
}
Dieser Code initialisiert das WinHTTPRequest-Objekt, legt die Richtlinie für die automatische Anmeldung so fest, dass die Anmeldeinformationen des aktuellen Benutzers verwendet werden, öffnet eine GET-Anfrage an die angegebene URL, sendet die Anfrage und ruft den Antworttext ab.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3