Maison >développement back-end >Golang >Comment effectuer l'authentification NTLM dans les requêtes HTTP Go avec les informations d'identification système ?

Comment effectuer l'authentification NTLM dans les requêtes HTTP Go avec les informations d'identification système ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-26 11:46:30967parcourir

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

Authentification NTLM dans les requêtes HTTP Go avec informations d'identification système

Dans cette question, l'utilisateur demande des conseils sur l'exécution de l'authentification Windows NTML dans un HTTP Go demande en utilisant les informations d’identification système de l’utilisateur appelant. Ils fournissent des exemples en C# et Python qui montrent comment y parvenir dans ces langages.

La solution réside dans l'utilisation de la bibliothèque go-ole, qui permet l'utilisation de WinHTTPRequest dans Go. En suivant une approche similaire à celle de l'exemple Python, il est possible d'implémenter l'authentification NTML avec les informations d'identification du système dans Go.

Voici l'extrait de code fourni dans Go qui accomplit cela :

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

Ce code initialise l'objet WinHTTPRequest, définit la politique de connexion automatique pour utiliser les informations d'identification de l'utilisateur actuel, ouvre une requête GET à l'URL spécifiée, envoie la requête et récupère le texte de la réponse.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn