2008-11-05 25 views
6

में प्रमाणीकरण सेटिंग्स को संग्रहीत करने के लिए सबसे अच्छी व्यवस्था क्या है मेरे पास एक ऐप है जो System.Net.Mail और System.Net.NetworkCredential का उपयोग करके प्रमाणीकृत ईमेल भेजेगा। मेरा प्रश्न यह है कि मैं जिस पासवर्ड की आवश्यकता है उसे कैसे संग्रहीत करना चाहिए नेटवर्कक्रेटनेटियल ऑब्जेक्ट बनाएं?WinForms एप

एप्लिकेशन में लॉगिन नहीं है लेकिन मैं एक विकल्प सेट कर सकता हूं जो उपयोगकर्ता को उनके ईमेल प्रमाण-पत्र दर्ज करने की अनुमति देता है (लगभग सभी मामलों में यह उनके विंडोज़ लॉगिन होगा)। मैं सक्रिय निर्देशिका का उपयोग नहीं कर सकता क्योंकि हर ग्राहक इसका उपयोग नहीं करता है।

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

मेरी वरीयता कुछ भी स्टोर करने से बचने के लिए होगी, तो क्या मैं वैसे भी क्रेडेंशियल्स को स्टोर करने के लिए मिल सकता हूं, शायद मैं इसे वर्तमान लॉगिन से या कहीं और प्राप्त कर सकता हूं?

उत्तर

3

उपयोगकर्ता नाम और पासवर्ड (विंडोज़ में) स्टोर करने के लिए DPAPI का उपयोग करें। इसके लिए .NET इंटरफ़ेस ProtectedData और संरक्षित मेमरी कक्षाएं हैं।

लेकिन सबसे पहले, आप कोशिश कर सकते हैं कि UseDefaultCredentials या DefaultNetworkCredentials आपके पर्यावरण के लिए काम कर रहा है।

+0

यह मेरा आदर्श समाधान नहीं है लेकिन यह सबसे अच्छा विकल्प प्रतीत होता है। DefaultCredentials मेरे लिए काम नहीं करेंगे लेकिन मैं पासवर्ड का अनुरोध करूंगा और संरक्षित डेटा वर्ग का उपयोग करके इसे स्टोर करूँगा। धन्यवाद –

0

आप Win32 प्रमाण-पत्र यूआई का भी उपयोग कर सकते हैं - इसमें this one on MSDN सहित .NET से इसका उपयोग करने के लिए कई नमूने मौजूद हैं।