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