2010-03-14 14 views
5

बेवकूफ सवालों के लिए खेद है, लेकिन डब्ल्यूसीएफ के बारे में कुछ चीजें हैं जो मैं अपने सिर को चारों ओर नहीं ले सकता। .... निम्नलिखित पर कुछ सलाह के लिए आभारी होंगेडब्ल्यूसीएफ net.tcp बाइंडिंग, संदेश प्रारूप और सुरक्षा प्रश्न

  • एक बहुत ही बुनियादी स्तर पर HTTP या MSMQ तार पर मेरा संदेश स्थानांतरण करने के लिए है कि WCF या तो बाइनरी (Net.Tcp) का उपयोग करता है सही भी है,?

  • हालांकि यह सच है कि सभी मामलों में, डेटा को हेडर और शरीर के साथ एसओएपी प्रारूप में संदेश कैसे स्थानांतरित किया जाता है, इस पर ध्यान दिए बिना? तो यह एक प्रकार का एक्सएमएल संदेश है जो HTTP/S या बाइनरी प्रारूप में प्रेषित होता है।

  • नेट क्लाइंट मेरे क्लाइंट सर्वर ऐप के लिए एक अच्छा विकल्प है - यह एक मैसेंजर ऐप के समान है जिसमें ग्राहक मेरे सर्वर पर फ़ायरवॉल के दूसरी तरफ सभी दूरस्थ उपयोगकर्ता हैं। अधिकांश चीजें जिन्हें मैं पढ़ रहा हूं वे डब्ल्यूएस * और HTTP का उपयोग करने के लिए कह रहे हैं।

  • क्या नेट टीसीपी मानक और प्रमाण पत्र के बिना सुरक्षित है? - वह है - लोग तार पर नहीं सुन सकते हैं और डेटा को डीकोड कर सकते हैं।

  • क्या net.tcp का उपयोग करके और एक स्थापित प्रमाणपत्र के बिना उपयोगकर्ता नाम और पासवर्ड भेजना संभव है?

  • यदि ऐसा है तो मुझे लगता है कि मैं इसे अपने सदस्यता प्रदाता को हुक कर सकता हूं और अपने सेवा अनुबंध कार्यान्वयन पर प्रत्येक विधि तक पहुंच प्रमाणित कर सकता हूं।

  • मुझे लगता है कि उपयोगकर्ता नाम और पासवर्ड सुरक्षा के साथ, प्रॉक्सी उपयोगकर्ता नाम और पासवर्ड के साथ शुरू किया गया है और यह जानकारी हर अनुरोध के साथ भेजी जाती है।

  • फिर मेरे सदस्यता प्रदाता को प्रत्येक विधि कॉल के लिए बुलाया जाएगा और विधि के लिए प्राधिकरण प्राप्त करने के लिए जो कुछ भी करने की आवश्यकता है उसे करें।

प्रश्नों के डंप के लिए खेद है, लेकिन यह जानना अच्छा होगा कि मैं डब्ल्यूसीएफ कैसे काम करता है, इस बारे में सही तरीके से सोच रहा हूं।

धन्यवाद।

उत्तर

15

एक बहुत ही बुनियादी स्तर पर यह सही है कि डब्ल्यूसीएफ तार पर अपना संदेश स्थानांतरित करने के लिए या तो बाइनरी (नेट टीसीपी), HTTP या एमएसएमक्यू का उपयोग करता है?

आप धारावाहिक तंत्र के साथ परिवहन परत को भ्रमित कर रहे हैं। WCF transports विकल्प टीसीपी, नामित पाइप्स, HTTP और एमएसएमक्यू हैं। WCF serialisation विकल्प बाइनरी हैं, टेक्स्ट (जिसमें एसओएपी, पीओएक्स और जेएसओएन शामिल हैं), और एमटीओएम।

हालांकि क्या यह सच है कि सभी मामलों में, डेटा को हेडर और शरीर के साथ एसओएपी प्रारूप में संदेश कैसे स्थानांतरित किया जाता है इस पर ध्यान दिए बिना? तो यह एक प्रकार का एक्सएमएल संदेश है जो HTTP/S या बाइनरी प्रारूप में प्रेषित होता है।

सं। डब्ल्यूसीएफ संचार के लिए परमाणु इकाई के रूप में Message कक्षा का उपयोग करता है। यह संरचना में एसओएपी है लेकिन यह एसओएपी जैसे क्रमिकरण प्रारूप नहीं है।

नेट है।मेरे क्लाइंट सर्वर ऐप के लिए टीसीपी एक अच्छा विकल्प है - यह एक मैसेंजर ऐप के समान है जिसमें क्लाइंट मेरे सर्वर पर फ़ायरवॉल के दूसरी तरफ सभी रिमोट यूजर हैं। अधिकांश चीजें जिन्हें मैं पढ़ रहा हूं वे डब्ल्यूएस * और HTTP का उपयोग करने के लिए कह रहे हैं।

टीसीपी की तरह लगता है कि यह एक अच्छा विकल्प नहीं होगा। फ़ायरवॉल आपके लिए टीसीपी को तब तक मुश्किल बना सकता है जब तक आप पोर्ट 80 या 443 पर अपना सर्वर संचालित नहीं कर पा रहे हैं। अपने व्यक्तिगत अनुभव से मैं इंटरनेट परिनियोजन में टीसीपी बाध्यकारी के साथ डब्ल्यूसीएफ का उपयोग करने की भी सिफारिश करता हूं। जब एक टीसीपी कनेक्शन खो जाता है डब्ल्यूसीएफ आपको पकड़ने और इसे फिर से स्थापित करने के लिए बहुत सारे हुप्स से कूदता है। HTTP बाइंडिंग प्रबंधित करने के लिए बहुत आसान हैं।

क्या नेट टीसीपी मानक और प्रमाण पत्र के बिना सुरक्षित है? - वह है - लोग तार पर नहीं सुन सकते हैं और डेटा को डीकोड कर सकते हैं।

NetTCP binding is secured by default with TLS

क्या net.tcp का उपयोग करके उपयोगकर्ता नाम और पासवर्ड भेजना संभव है और स्थापित प्रमाणपत्र के बिना?

आप टीसीपी बाध्यकारी के साथ प्रमाणीकरण के लिए पूर्व-स्थापित cerificate का उपयोग कर सकते हैं। आप अपने संदेश शीर्षकों में एक उपयोगकर्ता नाम और पासवर्ड भी जोड़ सकते हैं लेकिन यह एक अलग बात है।

यदि ऐसा है तो मुझे लगता है कि मैं इसे अपने सदस्यता प्रदाता को हुक कर सकता हूं और अपने सेवा अनुबंध कार्यान्वयन पर प्रत्येक विधि तक पहुंच प्रमाणित कर सकता हूं।

आप OperationContext का उपयोग करके संदेश शीर्षलेख निकाल सकते हैं और अपनी पसंद की जानकारी निकाल सकते हैं और इसे अपने प्रमाणीकरण प्रदाता के साथ उपयोग कर सकते हैं।

मुझे लगता है कि उपयोगकर्ता नाम और पासवर्ड सुरक्षा के साथ, प्रॉक्सी उपयोगकर्ता नाम और पासवर्ड के साथ शुरू किया गया है और यह जानकारी हर अनुरोध के साथ भेजी जाती है।

और

तब मेरे सदस्यता प्रदाता प्रत्येक विधि कॉल के लिए लागू किया जाएगा और यह विधि के लिए प्राधिकरण प्राप्त करने की जरूरत है जो कुछ भी करते हैं।

ऐसा लगता है कि आप How to: Use the ASP.NET Membership Provider पर एक नज़र डालना चाहते हैं।

3

Sipwiz 'उत्कृष्ट जवाब के अलावा:

हालांकि यह सच है कि सभी मामलों में, कैसे डेटा है की परवाह किए बिना संदेश अपने आप में में सोप प्रारूप हेडर और एक के साथ स्थानांतरित तन? तो यह एक प्रकार का एक्सएमएल संदेश है जो HTTP/S या बाइनरी प्रारूप में प्रेषित होता है।

हाँ - लगभग। डब्ल्यूसीएफ के लिए अधिकांश बाइंडिंग एसओएपी को तार पर उनके प्रारूप के रूप में उपयोग करती हैं - webHttpBinding को छोड़कर और डब्ल्यूसीएफ डाटा सर्विसेज (जिसे पहले "एस्टोरिया" या एडीओ.NET डेटा सर्विसेज के रूप में जाना जाता है) या डब्ल्यूसीएफ आरआईए सेवाओं जैसे संबंधित चीजें।वे डेटा स्थानांतरित करने के लिए एक आरईएसटी दृष्टिकोण का उपयोग करते हैं और एसओएपी के साथ कुछ लेना देना नहीं है।

आरईएसटी पर और अधिक के लिए, WCF REST Developer Center on MSDN

देखें