2016-08-23 14 views
9

मेरा लक्ष्य एक वेब प्रॉक्सी का उपयोग करना है। नेट क्लाइंट कार्यान्वयन (यानी ब्राउज़र नहीं) एक कॉर्पोरेट प्रॉक्सी पर वेबस्केट से कनेक्ट करने के लिए एनटीएलएम प्रमाणीकरण की आवश्यकता है। अब तक, सभी समाधान (जैसे websocket-sharp-with-proxy, websocket4net) कम आते हैं।NTLM प्रॉक्सी के साथ .NET WebSocket क्लाइंट का उपयोग कैसे करें?

मैं इन की कोशिश की है:

How to use proxies with the WebSocket4Net library

https://stackoverflow.com/a/2587330/573261

जहाँ तक मुझे पता है, लेखक NTLM प्रॉक्सी समर्थन जोड़ने पर इस चर्चा में अपडेट नहीं किया। http://websocket4net.codeplex.com/discussions/448172

यह सवाल पूछने के लिए क्यों ग्राहक कार्यान्वयन प्रॉक्सी का समर्थन नहीं करते की कोशिश की है, लेकिन यह उत्तर नहीं दिया गया है, और क्यों कोई समस्या दृष्टिकोण करना चाहता है पर किसी भी नए प्रकाश डाला नहीं किया।

तो मेरे प्रश्न पर वापस, एनटीएलएम प्रॉक्सी के पीछे क्लाइंट ऐप में वेबसाकेट तकनीक का उपयोग कैसे किया जाता है?

+0

अंतर्निहित .NET http स्टैक के लिए आप क्या उपयोग कर रहे हैं? अधिकांश विंडोज स्टैक (जैसे WinInet, WinHTTP) पहले ही एनटीएलएम का समर्थन करेंगे। – Adrien

+0

@Adrien 'नई वेबसॉकेट ("ws: //echo.websocket.org", मूल: "http://example.com") की धुन के लिए कुछ;; लेकिन यह एक पैरामीटर के रूप में NTLM प्रॉक्सी नहीं लेता है । मैंने जिन पुस्तकालयों का उल्लेख किया था, वे भी प्रयास किए गए थे, और जो कुछ भी वे आंतरिक रूप से – RichardTheKiwi

+0

का उपयोग करते हैं, क्या आप उल्लेख कर सकते हैं कि यह एक स्टैंडअलोन सेवा प्रक्रिया की तरह है या डेस्कटॉप ऐप की तरह है कि कोई व्यक्ति लॉग इन होगा और आपके ऐप को उनके क्रेडेंशियल्स से शुरू करेगा? –

उत्तर

2

ClientWebSocketSystem.Net.WebSockets में मिली वस्तु Options संपत्ति है जो आपको प्रॉक्सी सेटिंग्स कॉन्फ़िगर करने की अनुमति देती है।

var ws = new System.Net.WebSockets.ClientWebSocket(); 
await ws.ConnectAsync(new Uri("destination.com"), CancellationToken.None); 
ws.Options.Proxy = new WebProxy("example.com") 
{ 
    Credentials = new NetworkCredential("userName", "password") 
}; 

NetworkCredential वस्तु पासवर्ड आधारित प्रमाणीकरण के लिए प्रयोग किया जाता है और प्रदान कर सकता है कि तुम क्या जरूरत है। WebSocket की संपत्ति पर Credentials को पर सेट करने का प्रयास भी कर सकते हैं यदि उपर्युक्त काम नहीं करता है।

ws.Options.Credentials = new NetworkCredential("userName", "password"); 

मैं इस प्रकार के वातावरण के लिए पहुँच नहीं है, इसलिए मैं वास्तव में प्रयास नहीं किया है तुम क्या करने की कोशिश कर रहा है और यकीन है कि अगर यह मदद मिलेगी नहीं कर रहा हूँ रहे हैं। लेकिन, ऐसा लगता है कि यह मेरे लिए काम करेगा।

संबंधित मुद्दे