"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo realizar la autenticación NTLM en solicitudes Go HTTP con credenciales del sistema?

¿Cómo realizar la autenticación NTLM en solicitudes Go HTTP con credenciales del sistema?

Publicado el 2024-11-16
Navegar:611

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

Autenticación NTLM en solicitudes Go HTTP con credenciales del sistema

En esta pregunta, el usuario busca orientación sobre cómo realizar la autenticación NTML de Windows en Go HTTP solicitud utilizando las credenciales del sistema del usuario que llama. Proporcionan ejemplos de C# y Python que demuestran cómo lograr esto en esos lenguajes.

La solución radica en utilizar la biblioteca go-ole, que permite el uso de WinHTTPRequest en Go. Siguiendo un enfoque similar al del ejemplo de Python, es posible implementar la autenticación NTML con credenciales del sistema en Go.

Aquí está el fragmento de código proporcionado en Go que logra esto:

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

Este código inicializa el objeto WinHTTPRequest, establece la política de inicio de sesión automático para usar las credenciales del usuario actual, abre una solicitud GET a la URL especificada, envía la solicitud y recupera el texto de respuesta.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3