«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как выполнить аутентификацию NTLM в HTTP-запросах Go с системными учетными данными?

Как выполнить аутентификацию NTLM в HTTP-запросах Go с системными учетными данными?

Опубликовано 16 ноября 2024 г.
Просматривать:741

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

Аутентификация 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