Autenticação NTLM em solicitações HTTP Go com credenciais do sistema
Nesta pergunta, o usuário busca orientação sobre como realizar a autenticação NTML do Windows em um Go HTTP solicitação usando as credenciais do sistema do usuário chamador. Eles fornecem exemplos de C# e Python que demonstram como conseguir isso nessas linguagens.
A solução está na utilização da biblioteca go-ole, que permite o uso de WinHTTPRequest em Go. Seguindo uma abordagem semelhante ao exemplo do Python, é possível implementar a autenticação NTML com credenciais do sistema em Go.
Aqui está o trecho de código fornecido em Go que faz isso:
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 o objeto WinHTTPRequest, define a política de logon automático para usar as credenciais do usuário atual, abre uma solicitação GET para o URL especificado, envia a solicitação e recupera o texto de resposta.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3