ホームページ >バックエンド開発 >Golang >Windows システム資格情報を使用して Go HTTP NTLM リクエストを認証するにはどうすればよいですか?

Windows システム資格情報を使用して Go HTTP NTLM リクエストを認証するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-24 19:11:02211ブラウズ

How to Authenticate Go HTTP NTLM Requests with Windows System Credentials?

Go HTTP NTLM リクエストでの Windows システム認証情報: Go-OLE を使用した解決策

Go HTTP リクエストで NTLM 認証を実行するには、 Windows ユーザーのシステム資格情報を確認するには、次のアプローチを検討してください。

Go の COM 相互運用性のサポートを活用すると、WinHTTPRequest オブジェクトを利用して NTLM 認証による HTTP 接続を確立できます。 go-ole パッケージを利用することで、これは次のように実現できます。

<code class="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()

    // Create a WinHTTPRequest object
    unknown, _ := oleutil.CreateObject("WinHTTP.WinHTTPRequest.5.1")
    request, _ := unknown.QueryInterface(ole.IID_IDispatch)

    // Set the auto login policy to use system credentials
    oleutil.CallMethod(request, "SetAutoLogonPolicy", 0)

    // Open the request with the desired URL
    oleutil.CallMethod(request, "Open", "GET", "http://example.com", false)

    // Send the request
    oleutil.CallMethod(request, "Send")

    // Retrieve the response text
    resp := oleutil.MustGetProperty(request, "ResponseText")

    // Print the response
    fmt.Println(resp.ToString())
}</code>

Go-ole パッケージを利用して WinHTTPRequest オブジェクトと対話することにより、このコード スニペットは、ユーザー名やパスワードを手動で指定する必要がなく、Windows ユーザーのシステム資格情報を取得できます。

以上がWindows システム資格情報を使用して Go HTTP NTLM リクエストを認証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。