2011-02-17 7 views
8

मेरे पास आईआईएस में होस्ट किए गए डब्ल्यूसीएफ ग्राहक डब्ल्यूसीएफ सेवा का उपभोग है। प्रमाणीकरण के लिए मैं या तो प्रमाण पत्र या उपयोगकर्ता नाम प्रमाणीकरण के बारे में सोच रहा हूं। ग्राहक डब्ल्यूसीएफ में दो तरीकों को कॉल करता है और कुछ संदेश पास करता है।प्रत्येक डब्ल्यूसीएफ कॉल को प्रमाणीकृत और अधिकृत कैसे करें?

  1. डब्ल्यूसीएफ में आने वाले प्रत्येक कॉल के लिए, मैं उपयोगकर्ता को प्रमाणीकृत करना चाहता हूं।
  2. डीबी में संदेश रखने के लिए, मुझे पता होना चाहिए कि कॉलर कौन है, उपयोगकर्ता नाम और उपयोगकर्ता के बारे में कुछ अन्य गुण क्या हैं। प्रत्येक कॉल पर इन जानकारी को कैसे पास किया जा सकता है [एक छोटी वस्तु हो सकती है]?

उत्तर

9

यह अनुशंसित डिफ़ॉल्ट व्यवहार है - डब्ल्यूसीएफ सेवा के लिए प्रत्येक कॉल सेवा का एक नया उदाहरण प्राप्त करता है, और प्रत्येक कॉल प्रमाणीकृत और अधिकृत है।

बस सुनिश्चित करें कि डब्ल्यूसीएफ में सत्र मोड जैसी चीजें सक्षम न करें, और डब्लूसीएफ सिंगलटन के रास्ते पर न जाएं।

बस नियमित, मानक "प्रति-कॉल" डब्ल्यूसीएफ सेवा रखें - कोई समस्या नहीं है।

यदि आप कॉर्पोरेट लैन पर हैं, तो आप प्रमाणीकरण के लिए विंडोज क्रेडेंशियल का उपयोग करने के बारे में भी सोच सकते हैं (जो wsHttpBinding और netTcpBinding के लिए डिफ़ॉल्ट है)।

वास्तव में व्यापक WCF Security Guide है जिसमें डब्ल्यूसीएफ सुरक्षा के कुछ परिदृश्यों को स्थापित करने के तरीके के बारे में कई नमूने और गाइड कैसे हैं।

मैं आपको डब्ल्यूसीएफ और इसकी सुरक्षा तंत्र के लिए एक महान परिचय के लिए The Fundamentals of WCF Security देखें।

थोड़ा और उन्नत Declarate WCF Security का विचार है जिसमें जुवाल लोवी ने पांच सुरक्षा परिदृश्य प्रस्तुत किए हैं (यह एक बहुत ही योग्य पढ़ा गया है!) और उन्हें आपके सेवा अनुबंध (ओं) पर लागू होने वाले सुरक्षा विशेषताओं में शामिल करता है।

+1

यह वही है जो मैंने किया है और यह एक चैंप की तरह काम करता है। यहां एक अनुशंसा यह सुनिश्चित करने के लिए है कि उपयोगकर्ता को मान्य करने वाला कोड सुपर तेज़ है (क्योंकि यह प्रत्येक सेवा कॉल के लिए कहा जाता है)। यदि लगातार भंडारण के लिए कॉल इस पर महंगा है, तो आप कैशिंग को देखना चाहेंगे। – RQDQ

+0

धन्यवाद, मैं डब्ल्यूसीएफ सुरक्षा मार्गदर्शिका पढ़ रहा हूं और मैं अन्य दो लेख पढ़ने जा रहा हूं। आपने प्रति-कॉल इंस्टेंस प्रबंधन के बारे में बात की, मैं प्रत्येक कॉल पर उपयोगकर्ता जानकारी ऑब्जेक्ट कैसे भेजूं? – iraSenthil

+1

@iraSenthil: यदि आप विंडोज प्रमाण-पत्रों का उपयोग कर रहे हैं, तो आपको कुछ भी करने की आवश्यकता नहीं है। यदि आप प्रमाणपत्र का उपयोग कर रहे हैं, तो आपको कॉन्फ़िगरेशन में प्रमाणपत्र निर्दिष्ट करना होगा (और कोड में कुछ भी नहीं करें)। यदि आप अलग उपयोगकर्ता नाम/पासवर्ड का उपयोग करना चाहते हैं, तो आपको संचार चैनल खोलते समय उन्हें सेट करना होगा। –