Maison  >  Article  >  développement back-end  >  Comment authentifier les requêtes Go HTTP NTLM avec les informations d'identification du système Windows ?

Comment authentifier les requêtes Go HTTP NTLM avec les informations d'identification du système Windows ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-24 19:11:02117parcourir

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

Identifiants du système Windows dans les requêtes Go HTTP NTLM : une solution avec Go-OLE

Pour effectuer l'authentification NTLM dans une requête HTTP Go à l'aide de informations d'identification système de l'utilisateur Windows, envisagez l'approche suivante :

En tirant parti de la prise en charge de Go pour l'interopérabilité COM, il est possible d'utiliser l'objet WinHTTPRequest pour établir une connexion HTTP avec l'authentification NTLM. En exploitant le package go-ole, cela peut être réalisé comme suit :

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

En utilisant le package go-ole pour interagir avec l'objet WinHTTPRequest, cet extrait de code fournit une solution pour effectuer l'authentification NTLM à l'aide du informations d'identification système de l'utilisateur Windows, sans qu'il soit nécessaire de spécifier manuellement un nom d'utilisateur ou un mot de passe.

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