Аутентификация NTLM в HTTP-запросах Go с системными учетными данными
В этом вопросе пользователь ищет рекомендации по выполнению аутентификации Windows NTML в Go HTTP запрос, используя системные учетные данные вызывающего пользователя. Они предоставляют примеры из C# и Python, демонстрирующие, как этого добиться на этих языках.
Решение заключается в использовании библиотеки go-ole, которая позволяет использовать WinHTTPRequest в Go. Следуя подходу, аналогичному примеру Python, можно реализовать аутентификацию NTML с использованием системных учетных данных в Go.
Вот предоставленный фрагмент кода в 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())
}
Этот код инициализирует объект WinHTTPRequest, устанавливает политику автоматического входа в систему для использования учетных данных текущего пользователя, открывает запрос GET по указанному URL-адресу, отправляет запрос и получает текст ответа.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3