システム資格情報を使用した Go HTTP リクエストでの NTLM 認証
この質問では、ユーザーは Go HTTP で Windows NTML 認証を実行するためのガイダンスを求めています。呼び出し側ユーザーのシステム資格情報を使用してリクエストを実行します。これらの言語でこれを実現する方法を示す C# と Python の例が提供されています。
解決策は、Go で WinHTTPRequest を使用できるようにする go-ole ライブラリを利用することにあります。 Python の例と同様のアプローチに従うことで、Go でシステム資格情報を使用した NTML 認証を実装できます。
これを実現する Go で提供されているコード スニペットは次のとおりです。
<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() 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()) }</code>
このコードは、WinHTTPRequest オブジェクトを初期化し、現在のユーザーの資格情報を使用するように自動ログオン ポリシーを設定し、指定された URL への GET リクエストを開き、リクエストを送信し、応答テキストを取得します。
以上がシステム資格情報を使用して Go HTTP リクエストで NTLM 認証を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。