यह एक WCF बाकी WebService का एक अच्छा प्रारंभिक बिंदु है:
REST/SOAP endpoints for a WCF service
: तुम सिर्फ एक वेब ब्राउज़र के साथ एक बाकी सेवा का परीक्षण कर सकते हैं ((btw। Stackoverflow यूआरएल की अच्छा बाकी तरह है) यूआरएल पर जाएं और एक्सएमएल या जेएसओएन प्राप्त करें)। फिडलर भी एक अच्छा उपकरण है, और फायरफॉक्स के लिए फायरबग-प्लगइन है। मैं आमतौर पर एक पतली सेवा-इंटरफ़ेस प्रोजेक्ट और एक अलग (इकाई-परीक्षण) लॉजिक-प्रोजेक्ट बनाता हूं।
प्रमाणीकरण के लिए मैं पहले एक ग्रिड और टाइमस्टैम्प उत्पन्न करता हूं। फिर उन हैंश पर आधारित (.NET SHA256 और SHA512 का समर्थन करता है)। ग्रिड को कुछ ठोस संख्यात्मक आईडी मैप करने के लिए सर्वर (डेटाबेस तालिका) में संग्रहीत किया जा सकता है। तो फिर आप की तरह एक आराम यूआरएल हो सकता है:
/myobject/1?timestamp=20100802201000&hash=4DR7HGJPRE54Y
और बस (AOP के साथ उदा) विकास के वातावरण में हैश & टाइमस्टैम्प जाँच अक्षम करें। टाइमस्टैम्प के साथ मैं जांचता हूं कि टिकट 15 मिनट पहले और समय में आगे है (= हमलों को रोकने के लिए पर्याप्त होना चाहिए)।
आपकी सेवा सार्वजनिक/इंटरनेट को दिखाई और अपने ग्राहक एक jQuery या Silverlight -client है जाएगा? फिर भी आपको कोई समस्या है: आप क्लाइंट सॉफ़्टवेयर कोड में एक गुप्त कुंजी शामिल नहीं करना चाहते हैं।
तो आपको क्लाइंट सत्र को स्टोर करने के लिए सर्वर में हैश और किसी प्रकार की कुकी उत्पन्न करने की आवश्यकता है। (ऐसा किया जा सकता है उदाहरण के लिए अलग-अलग कॉन्फ़िगर-फ़ाइल वाले फ़ोल्डर में एक अलग लॉगिन-पेज/एप्लिकेशन के साथ।) मुझे याद है कि this book इस विषय पर कुछ था:
यदि आप WCF का उपयोग करते समय HttpContext को सक्षम करना चाहते हैं, आपको <system.serviceModel>
के तहत <serviceHostingEnvironment aspNetCompatibilityEnabled="true">
सेट करने की आवश्यकता है। फिर आप वर्तमान उपयोगकर्ता पहचान HttpContext.Current.User.Identity.Name
से देख सकते हैं।
हालांकि, अगर आप एक शुद्ध बाकी सेवा करना चाहते हैं तो आप कुकीज़ का उपयोग नहीं है, लेकिन एक बुनियादी HTTP प्रमाणीकरण एसएसएल के साथ मिलकर/प्रत्येक कॉल के लिए टीएलएस।
मुझे लगता है कि यह सिर्फ LINQ2Xml या jQuery तो शायद ग्राहक पीढ़ी की जरूरत नहीं है के साथ एक ग्राहक बनाने के लिए आसान है।
या आप भी दोनों, एक सोप और एक REST इंटरफ़ेस हो सकता है, और एक ग्राहक बनाने के लिए एक सेवा संदर्भ का उपयोग करें।
मुझे गाइड की आवश्यकता क्यों है? –
एक पुराना सवाल यह है कि "कौन सा बेहतर आईडी है: संख्यात्मक या guid?" ग्रिड सुरक्षित है क्योंकि आप इसे अनुमानित नहीं कर सकते हैं। लेकिन संख्यात्मक आईडी अधिक स्पष्ट, सरल और साफ है। यदि आप संख्यात्मक आईडी और टाइमस्टैम्प द्वारा केवल हैश उत्पन्न करते हैं, तो यह इतना सुरक्षित नहीं है: आखिरकार, उन्होंने तोड़ दिया है सभी प्रमुख हैश-एल्गोरिदम (एमडी 5, एसएचए)। वे वैध सममित चेकसम उत्पन्न कर सकते हैं। इतना तेज़ नहीं है कि इससे कोई फर्क नहीं पड़ता है, लेकिन शायद कुछ वर्षों में स्थिति अलग है। इस समाधान के साथ आप दोनों के फायदे प्राप्त करते हैं प्रकार: आप वैध हैश-कोड आसानी से अनुमान नहीं लगा सकते हैं, लेकिन आपको ग्रिड-आधारित आईडी स्थानांतरित करने की आवश्यकता नहीं है। –
:) मेरा प्रश्न "guid बनाम संख्या" नहीं था। यह और अधिक था। कब और कौन guid उत्पन्न करता है वर्कफ़्लो में? –