2010-06-28 8 views
6

मैं .NET की ProtectedData.Protect विधि का उपयोग करके कुछ टेक्स्ट फ़ाइल डेटा एन्क्रिप्ट और डिक्रिप्ट करने का प्रयास कर रहा हूं। मैं एक मशीन पर पाठ को एन्क्रिप्ट करने और इसे फ़ाइल में सहेजने में सक्षम होना चाहता हूं और पाठ को एक अलग मशीन पर डिक्रिप्ट करना चाहता हूं। मशीनें एक ही डोमेन में हैं और दोनों एक ही उपयोगकर्ता नाम के तहत एक ही सेवा चला रहे हैं, इसलिए मैंने डेटाप्रोसेन्टस्कोप का उपयोग करने का विचार किया। CurrentUser या तो सेवा को एन्क्रिप्ट करने और फ़ाइल को डिक्रिप्ट करने की अनुमति देगा।DataProtectionScope.CurrentUser एन्क्रिप्शन मशीनों पर काम नहीं कर रहा है

जब सर्विस नंबर दो फ़ाइल को डिक्रिप्ट करने का प्रयास करता है, तो यह "निर्दिष्ट स्थिति में उपयोग के लिए मान्य नहीं है" फेंकता है। अन्य साइटें बताती हैं कि इस प्रकार की समस्या तब होती है जब प्रतिरूपण सही तरीके से नहीं किया जाता है, लेकिन कोई प्रतिरूपण नहीं होता है। दोनों सेवाएं एक ही एडी खाते के तहत चलती हैं। ऐसा लगता है कि सेवाएं डेटा एन्क्रिप्ट करने के लिए विभिन्न चाबियों का उपयोग कर रही हैं लेकिन मुझे नहीं पता कि यह क्यों होगा क्योंकि वे एक ही खाते के तहत चल रहे हैं।

क्या किसी और को इस तरह का मुद्दा सामने आया है?

कोड मैं एन्क्रिप्ट और decypt लिए उपयोग कर रहा हूँ मूल रूप से है:

byte[] bytes = Encoding.Unicode.GetBytes(password); 
byte[] protectedPassword = ProtectedData.Protect(bytes, null, DataProtectionScope.CurrentUser); 
return Convert.ToBase64String(protectedPassword); //then I write this to a file 

धन्यवाद!

+3

यह आपकी स्थिति की व्याख्या कर सकता है: http://support.microsoft.com/kb/309408#4 – Toby

+0

क्या वे दोनों एक ही * डोमेन * खाते के अंतर्गत चल रहे हैं, या वे स्थानीय खातों के अंतर्गत हैं जो बस होते हैं वही उपयोगकर्ता नाम और पासवर्ड? –

उत्तर

1

उपयोगकर्ता के पास रोमिंग प्रोफ़ाइल होना चाहिए।

... डिक्रिप्शन आमतौर पर केवल कंप्यूटर जहां डाटा एन्क्रिप्ट किया गया था पर किया जा सकता:

DPAPI समारोह, CryptProtectData function नीचे Windows API के लिए दस्तावेज़ में, वहाँ इस टिप्पणी है। हालांकि, रोमिंग प्रोफाइल वाले उपयोगकर्ता नेटवर्क पर किसी अन्य कंप्यूटर से डेटा डिक्रिप्ट कर सकते हैं।

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