सिस्टम क्रेडेंशियल के साथ गो HTTP अनुरोधों में एनटीएलएम प्रमाणीकरण
इस प्रश्न में, उपयोगकर्ता गो HTTP में विंडोज एनटीएमएल प्रमाणीकरण करने पर मार्गदर्शन चाहता है कॉलिंग उपयोगकर्ता के सिस्टम क्रेडेंशियल्स का उपयोग करके अनुरोध करें। वे C# और Python से उदाहरण प्रदान करते हैं जो दर्शाता है कि उन भाषाओं में इसे कैसे प्राप्त किया जाए।
समाधान गो-ओले लाइब्रेरी का उपयोग करने में निहित है, जो गो में WinHTTPRequest के उपयोग को सक्षम बनाता है। पायथन उदाहरण के समान दृष्टिकोण का पालन करके, गो में सिस्टम क्रेडेंशियल्स के साथ एनटीएमएल प्रमाणीकरण लागू करना संभव है।
यहां गो में प्रदान किया गया कोड स्निपेट है जो इसे पूरा करता है:
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 अनुरोध खोलता है, अनुरोध भेजता है, और प्रतिक्रिया पाठ पुनर्प्राप्त करता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3