"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية إجراء مصادقة NTLM في طلبات Go HTTP باستخدام بيانات اعتماد النظام؟

كيفية إجراء مصادقة NTLM في طلبات Go HTTP باستخدام بيانات اعتماد النظام؟

تم النشر بتاريخ 2024-11-16
تصفح:821

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

مصادقة 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