مصادقة NTLM في طلبات Go HTTP مع بيانات اعتماد النظام
في هذا السؤال، يسعى المستخدم للحصول على إرشادات حول إجراء مصادقة Windows NTML في Go HTTP طلب باستخدام بيانات اعتماد النظام للمستخدم المتصل. أنها توفر أمثلة من C # وPython التي توضح كيفية تحقيق ذلك في تلك اللغات.
يكمن الحل في استخدام مكتبة go-ole، والتي تتيح استخدام WinHTTPRequest في Go. باتباع نهج مماثل كمثال بايثون، من الممكن تنفيذ مصادقة 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