2008-11-11 14 views
6

मेरी डब्ल्यूसीएफ सेवा में क्लाइंट और सेवा के बीच डेटासेट (सीएसवी प्रारूप में) डेटा भेजना शामिल है। यह डेटासेट एन्क्रिप्ट किया जाना चाहिए ताकि डेटा को अवरुद्ध नहीं किया जा सके। मैं wshttpbinding उपयोग कर रहा हूँ और web.config में निम्नलिखित सेटिंग्स का उपयोग करके संदेश एन्क्रिप्ट करने के लिए कोशिश कर रहा है:डब्ल्यूसीएफ - मैं संदेशों को कैसे एन्क्रिप्ट कर सकता हूं?

<wsHttpBinding> 
    <binding name="wsHttp"> 
    <reliableSession enabled="true" /> 
    <security mode="Message"> 
     <message clientCredentialType="UserName" algorithmSuite="TripleDes" /> 
    </security> 
    </binding> 
</wsHttpBinding> 

जब मैं कोशिश करते हैं और एक ग्राहक प्रॉक्सी मैं एक लंबे त्रुटि messagebox मिल (जो पूरी तरह से है क्योंकि यह नहीं पढ़ा जा सकता है उत्पन्न स्क्रीन के नीचे चला जाता है!)। त्रुटि संदेश "सेवा प्रमाण पत्र प्रदान नहीं किया जा रहा" के बारे में कुछ उल्लेख करता है।

मैं एक संदेश कैसे एन्क्रिप्ट कर सकता हूं? क्या मुझे प्रमाण पत्र चाहिए? मुझे यह उल्लेख करना चाहिए कि इस सेवा का उपयोग विभिन्न डोमेन से इंटरनेट पर किया जाएगा, इसलिए मुझे यकीन नहीं है कि "उपयोगकर्ता नाम" सुरक्षा का उपयोग करना सबसे अच्छा विकल्प है (?)

असल में मैं उलझन में हूं!

उत्तर

4

हां, आपकी सेवा को प्रमाण पत्र की आवश्यकता है ताकि आपकी एन्क्रिप्शन कुंजी को सुरक्षित रूप से आदान-प्रदान किया जा सके। आप makecert.exe के साथ एक परीक्षण सेवा प्रमाणीकरण प्रमाण पत्र बना सकते हैं। इसके विवरण के लिए this entry in my blog देखें।

आपको यह सुनिश्चित करने की भी आवश्यकता है कि आपकी सेवा चालू हो रही है क्योंकि प्रमाणपत्र की निजी कुंजी फ़ाइल को पढ़ने में सक्षम है। यदि आप Windows Vista (या बाद में) पर हैं, तो प्रमाणपत्र एमएमसी स्नैप-इन आपको उस निजी कुंजी पर अनुमतियों को नियंत्रित करने की अनुमति देता है, लेकिन विंडोज के पुराने संस्करणों के लिए यह थोड़ा कठिन है। मैं एक उपयोगिता का उपयोग करता था जो डब्लूएसई 3 के साथ आया था, लेकिन कोई और अधिक प्रत्यक्ष तरीके से सुझाव दे सकता है। जब तक आपकी सेवा व्यवस्थापक के रूप में नहीं चलती, तब तक आपको इन अनुमतियों को समायोजित करना होगा।

अद्यतन: सभी अच्छी चीजों की तरह, मेरा ब्लॉग समाप्त हो गया। मुझे याद दिलाने के लिए makerofthings7 के लिए धन्यवाद। makecert आदेश आप उत्पन्न करने के लिए एक सेवा प्रमाणीकरण प्रमाणपत्र कुछ इस तरह है जरूरत है ...

makecert -sr LocalMachine -ss My -pe -n CN=subject-name -eku 1.3.6.1.5.5.7.3.1 -sky exchange 

... बस किसी भी प्रमाण पत्र का नाम है कि आपकी सेवा के लिए समझ में आता है के साथ विषय-नाम बदलें।

+0

लिंक अब मान्य नहीं है ... – LamonteCristo

+0

@ makerofthings7 धन्यवाद! मैंने अपना जवाब अपडेट कर लिया है। – Martin

+0

मैंने लिंक बदल दिया है, अब यह archive.org से ब्लॉग के एक वर्किंग वर्जन को इंगित करता है। – svick

4

@ मार्टिन सही है, आपको सर्वर पर प्रमाणपत्र की आवश्यकता है। This link में संदेश आधारित सुरक्षा के लिए संचार प्रवाह का एक अच्छा अवलोकन है और इसमें नमूना कोड है। This link प्रमाण पत्र के साथ काम करने का एक अच्छा अवलोकन है।

आपकी स्वाभाविक आवश्यकताओं के लिए, this link उपलब्ध विभिन्न विकल्पों की समीक्षा करता है। यदि आप डब्ल्यूसीएफ के लिए नए हैं, तो डब्ल्यूसीएफ सीखना: मिशेल बस्टामेंटे द्वारा ए हैंड-ऑन गाइड एक अच्छी किताब है और संदेश आधारित सुरक्षा को कवर करती है।

1

मैं अभी भी इस समस्या का हल ढूंढने की कोशिश कर रहा हूं। मेरे पास भी है, लेकिन एक एक्सएमएल पर हस्ताक्षर करने के साथ। अभी भी उपयोगकर्ता IIS को खोजने के लिए WinXP प्रारंभ में चल रहा है> मेरा कंप्यूटर राइट-क्लिक करें> प्रबंधित करें> सेवाएं और एप्लिकेशन> सेवाएं> आईआईएस व्यवस्थापक> डबल क्लिक करें और लॉग ऑन टैब में यह आमतौर पर स्थानीय सिस्टम कहलाएगा।

संपादित

ठीक है, यह मैं कैसे मेरी समस्या हल है। मेरे पास प्रमाण पत्र था कि मैंने प्रमाण पत्र बनाने के लिए article का उपयोग किया था। यदि प्रोजेक्ट एक एएसपीवेबसाइट है जो आपके सी फ़ोल्डर में सहेजा गया है तो आपको इसके साथ कोई समस्या नहीं हो सकती है। लेकिन अगर यह आईआईएस को एक HTTP परियोजना के रूप में सहेजा गया है तो आपको समस्याएं होंगी।

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

प्रमाण पत्र एक भौतिक फ़ाइल में हो सकते हैं लेकिन वे आमतौर पर प्रमाणपत्र प्रबंधन स्टोर में हैं ताकि वे WSE 2.0 में टूल X509 प्रमाणपत्र उपकरण का उपयोग कर सकें। इसे तब तक अलग-अलग अनुभागों में ढूंढकर अपना प्रमाणपत्र खोलें जब तक आपको यह न मिल जाए। फिर इसे खोलें और नीचे एक सुरक्षा निजी कुंजी होगी, सुरक्षा टैब में LOCALHOST \ ASPNET जोड़ें। और यह आपकी वेबसाइट को प्रमाण पत्र पढ़ने में सक्षम होना चाहिए।

संक्षेप में ऐसा होता है कि जब आप सार्वजनिक और निजी कुंजी बनाते हैं, तो अलौकिक आप निजी कुंजी को ठीक से देख सकते हैं, वास्तव में यह फ़ाइल सिस्टम में टिंबुकु को भेजता है और आपको इसे एएसपीएनईटी खाता जोड़ने के लिए ढूंढना होगा पढ़ने के लिए उपयोग के लिए। मैं Vista में पढ़ रहा हूं यह बहुत आसान है लेकिन मैं एक्सपी का उपयोग कर रहा हूं।

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

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